Rechnung per E-Mail - Mailtext

Postby Lavinia3875 » Thu Jan 27, 2011 10:52 am

ewx hat geschrieben:Hey, du bist doch IT-Experte, oder? ;)
solche Aussagen liebe ich ja...! ;)
"Ey, du arbeitest doch bei Siemens!? Also, meine Waschmaschine, die macht immer so komisch Geräusche..."
"Ey, du liest doch gerne Bücher?! Welche Telefonnummer hat doch gleich Hans Meyer aus Berlin?!"
"Ey, du fährst doch Auto!? Wie hoch ist denn das Bußgeld in Griechenland, wenn man bei Rot über eine Ampel fährt?"
Ey, ich kann doch nicht alles wissen!!


*lol* Der zweite gefällt mir am besten.

ewx hat geschrieben:Das heißt also, wenn das FA meine Umsatzsteuermeldungen prüft, dann muss ich entweder die Rechnung als Papier vorlegen können oder ich muss die eRechnung + Signaturdatei vorweisen können. okay.


Richtig.

ewx hat geschrieben:Der Vergleich hinkt nicht nur, der lahmt ziemlich stark!
Bin ich dann in der Pflicht, nachzuweisen, dass die Rechnung per Post gekommen ist oder muss das FA mir nachweisen, dass ich sie selbst ausgedruckt habe?


Wenn du denen eine Papierrechnung hinlegst, gehen die davon aus, dass du sie mit der Post bekommen hast. Kriegen die raus, dass dem nicht so ist, ist das Steuerhinterziehung.

ewx hat geschrieben:Du hast ja aber auch geschrieben, dass es Bestrebungen gibt, das wieder zu vereinfachen, weil es zu aufwändig ist. Von daher wird es wahrscheinlich eher so sein, dass man keine großartigen Repressalien vom FA zu erwarten hat.


Neenee, nur weil es in der EU Politiker gibt, die über was nachdenken, ist das Gesetz nicht geändert. Gesetz ist Gesetz und Finanzämter finden Verstöße gegen das UStG nicht witzig!

ewx hat geschrieben:Ich will auch gar keine Haarspaltereien betreiben oder mich dümmer stellen, als ich bin, weswegen ich als Fazit mitnehme, dass du mit deinen Ausführungen recht hast, aber es in der Praxis nicht wirklich relevant ist.


Ich würds wegen 50 EUR USt nicht drauf anlegen, ein Verfahren wegen Steuerhinterziehung zu kriegen. Auch nicht für 500 oder 5.000. Da sind mir Papierrechnungen echt lieber.


Ralf
Lavinia3875
.....
.....
 
Posts: 1274
Joined: Sat Sep 18, 2004 2:07 pm

Postby ewx » Sun Jan 30, 2011 6:41 pm

In der neuen c't ist ein ganzer Artikel über eRechnungen... ;)
Es stimmt, es ist tatsächlich verboten, die Rechnung, die man per Email bekommen hat, auszudrucken und zu behaupten, sie wäre per Post gekommen. [Anleitung zur Steuerhinterziehung vom Moderator gelöscht; ralf.wenzel]
ewx
.....
.....
 
Posts: 2840
Joined: Mon Aug 04, 2003 9:02 pm

Postby Lavinia3875 » Mon Jan 31, 2011 7:33 am

Zunächst mal an alle, die "Zensur" schreien: Dies war der erste inhaltliche Eingriff und nach kurzer Diskussion mit meiner Frau habe ich einen Satz aus dem Posting von ewx entfernt, der eventuell (!) Ärger machen könnte. Selbst wenn sowas "nur" eine Abmahnung bedeutet, die dann in einem Rechtsstreit abgewiesen wird, denke ich, dass wir SOLCHEN Ärger (neben dem Spam) nicht auch noch brauchen. Hoffen wir, dass es auch der letzte inhaltliche Eingriff war, ich habe den gemacht in dem Bewusstsein, dass er Stress mit den Usern gibt (und ich habe derzeit eigentlich genug Baustellen).

Abgesehen davon war der Tipp auch noch inhaltlich falsch. Wenn ich hier darlege, warum, muss ich den Tipp wiederholen, dann hätte ich ihn nicht zu entfernen brauchen ;) Eine ausführliche Begründung habe ich daher ewx per PN zukommen lassen.

Zum Inhaltlichen: Zunächst einmal bin ich erstaunt, dass nach meinem, mit Gesetzestexten untermauerten Posting ausgerechnet eine Zeitschrift als Referenz herhalten muss. Was man machen KANN, ist das Versenden einer informativen, formlosen Rechnungskopie (auch vorab) an den Rechnungsempfänger (das mache ich bei einem Kunden ständig, weil er dann schon die Rechnungsbearbeitung anwerfen kann). Formell gültig ist aber nur die, die man dann mit der Post hinterherschickt.

Von der gesetzlichen Regelung, um die es hier geht, halte ich übrigens ganz und gar nichts und bin froh, wenn die wegfällt. Insofern kann ich User wie ewx sehr gut verstehen. Da wir es hier aber (was unsere Kunden angeht) in aller Regel mit Konzernen zu tun haben: Die nehmen solche Rechnungen nicht an (weil sie wissen dass sie die bei der USt nicht angeben dürfen) und versenden sie auch nicht (weil sie wissen, dass der RE sie nicht angeben darf, sie die Rechnung also eh um die Ohren gehauen kriegen). Und wir als Berater sollten sowas daher auch nicht vorschlagen.

Übrigens: Es gibt Anbieter, bei denen man Rechnungen mit qualifizierter Signatur auch für kleines Geld erzeugen lassen kann.


Ralf
Lavinia3875
.....
.....
 
Posts: 1274
Joined: Sat Sep 18, 2004 2:07 pm

Postby Lavinia3875 » Fri Feb 04, 2011 3:22 pm

Update:

"Mit ihrem jetzt beschlossenen Steuervereinfachungsgesetz (PDF-Datei) will die Bundesregierung nicht nur die Werbungskostenpauschale für Arbeitnehmer erhöhen. Gleichzeitig ändert sie aufgrund einer EU-Vorgabe aus dem vorigen Jahr das Umsatzsteuergesetz. Demzufolge entfällt der Zwang, elektronische Rechnungen entweder mit einer qualifizierten Signatur zu versehen oder per EDI zu versenden. Die neue Regelung soll für alle Umsätze gelten, die nach dem 30. Juni 2011 anfallen."

http://www.heise.de/newsticker/meldung/ ... 83747.html
Lavinia3875
.....
.....
 
Posts: 1274
Joined: Sat Sep 18, 2004 2:07 pm

Re: Rechnung per E-Mail - Mailtext

Postby ewx » Mon Jul 04, 2011 9:02 am

ewx
.....
.....
 
Posts: 2840
Joined: Mon Aug 04, 2003 9:02 pm

Re: Rechnung per E-Mail - Mailtext

Postby Lavinia3875 » Mon Jul 04, 2011 9:13 am

Wichtig dabei: Das Gesetz ist noch nicht durch den Bundesrat, gilt also noch nicht!
Lavinia3875
.....
.....
 
Posts: 1274
Joined: Sat Sep 18, 2004 2:07 pm

Update: Rechnung per E-Mail - Mailtext

Postby Tron » Sat Jan 25, 2014 1:19 pm

Moin.
kleines Update des Druckprogramms:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. *&---------------------------------------------------------------------*
  2. *& Subroutinepool INVOICE EMAIL AS PDF ATTACHMENT                      *
  3. *&                                                                     *
  4. *&---------------------------------------------------------------------*
  5. *&                                                                     *
  6. *&                                                                     *
  7. *&---------------------------------------------------------------------*
  8.  
  9. * WARNING : NO POPUPS - NO COMMIT WORK ALLOWED !!!!!!!!!!!!!!!!!!!!!!!!!
  10.  
  11. REPORT  yfaktura_email.
  12. DATA: retcode   LIKE sy-subrc.         "Returncode
  13. DATA: xscreen(1) TYPE c.               "Output on printer or screen
  14. TABLES: nast,                          "Messages
  15.         tnapr.                         "Programs & Forms
  16.  
  17. *&---------------------------------------------------------------------*
  18. *&      Form  ENTRY
  19. *&---------------------------------------------------------------------*
  20. *       text
  21. *----------------------------------------------------------------------*
  22. *      -->RETURN_CODE  text
  23. *      -->US_SCREEN    text
  24. *----------------------------------------------------------------------*
  25. FORM entry USING return_code TYPE i
  26.                  us_screen TYPE c.
  27.  
  28.   FIELD-SYMBOLS: <f> TYPE itcpp,
  29.                  <p> TYPE  ssfcrescl.
  30.  
  31.   DATA pgnam TYPE na_pgnam." Programname
  32.   DATA ronam TYPE na_ronam."Formname
  33.   DATA fm_name TYPE rs38l_fnam. "genr.Druckbaustein
  34.   DATA lv_vec(80).
  35.   DATA spoolid TYPE rspoid.
  36.  
  37.   CLEAR retcode.
  38.   xscreen = us_screen.
  39.  
  40. *   Call the "Original" Printroutine
  41.  
  42. * RVADIN01 = Sapscript
  43. * RLB_INVOICE = Smartforms
  44.  
  45. *-Orig program------+
  46. *                   |
  47. *-Orig Form-+       |
  48. *           |       |
  49.   PERFORM entry(rlb_invoice) USING return_code us_screen.
  50.  
  51. * Try Sapscript
  52.   ASSIGN ('(SAPLSTXC)ITCPP') TO <f>.
  53.   IF sy-subrc = 0 AND
  54.      NOT <f>-tdspoolid IS INITIAL AND
  55.      us_screen IS INITIAL.
  56.  
  57.     PERFORM processing USING <f>-tdspoolid.
  58.     UNASSIGN <f>.
  59.  
  60.   ELSE.
  61. * Try Smartforms
  62.     CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
  63.       EXPORTING
  64.         formname           = tnapr-sform
  65.       IMPORTING
  66.         fm_name            = fm_name
  67.       EXCEPTIONS
  68.         no_form            = 1
  69.         no_function_module = 2
  70.         OTHERS             = 3.
  71.  
  72.     IF sy-subrc <> 0.
  73.       retcode = 1.
  74.       EXIT.
  75.     ENDIF.
  76.  
  77.     SELECT SINGLE pname FROM tfdir INTO lv_vec
  78.     WHERE funcname = fm_name.
  79.     IF sy-subrc = 0.
  80.  
  81.       CONCATENATE '(' lv_vec ')JOB_OUTPUT_INFO' INTO lv_vec.
  82.       ASSIGN (lv_vec) TO <p>.
  83.  
  84.       IF sy-subrc = 0 AND
  85.       NOT <p>-spoolids[] IS INITIAL AND
  86.       us_screen IS INITIAL.
  87.  
  88.         LOOP AT <p>-spoolids INTO spoolid.
  89.           PERFORM processing USING spoolid.
  90.           EXIT.
  91.         ENDLOOP.
  92.         UNASSIGN <p>.
  93.  
  94.       ENDIF. " have Ids
  95.  
  96.     ENDIF." tfdir entry
  97.  
  98.   ENDIF." sapscript/smartforms
  99.  
  100.  
  101.   IF retcode NE 0.
  102.     return_code = 1.
  103.   ELSE.
  104.     return_code = 0.
  105.   ENDIF.
  106.  
  107. ENDFORM.                    "ENTRY
  108.  
  109. *&---------------------------------------------------------------------*
  110. *&      Form  processing
  111. *&---------------------------------------------------------------------*
  112. *       text
  113. *----------------------------------------------------------------------*
  114. *      -->SPOOLID    text
  115. *----------------------------------------------------------------------*
  116. FORM processing USING spoolid TYPE itcpp-tdspoolid.
  117.  
  118.   DATA numbytes TYPE i.
  119.   DATA lbuffer TYPE xstring.
  120.  
  121.   DATA: BEGIN OF lt_pdf OCCURS 0,
  122.         t(134),
  123.         END OF lt_pdf.
  124.  
  125. * for Invoice Header Text
  126.   DATA:
  127.   lv_id TYPE thead-tdid VALUE 'YEML',
  128.   lv_language TYPE thead-tdspras,
  129.   lv_name TYPE thead-tdname,
  130.   lv_object TYPE thead-tdobject VALUE 'VBBK',
  131.   lt_lines TYPE TABLE OF tline,
  132.   ls_line TYPE tline.
  133.  
  134. * For partner Email
  135.   lv_item_number TYPE vbup-posnr VALUE '000000',
  136.   lv_partner_role TYPE vbpa-parvw VALUE 'RE'.
  137.  
  138.   DATA:
  139.   lv_document_number TYPE vbuk-vbeln,
  140.   ls_vbpa TYPE vbpa.
  141.  
  142. * For Email contents
  143.   DATA contents_hex TYPE solix_tab.
  144.   DATA lv_internetadr TYPE adr6-smtp_addr.
  145.   DATA lv_subject TYPE so_obj_des.
  146.   DATA lv_attname TYPE sood-objdes.
  147.  
  148.   DATA  send_request       TYPE REF TO cl_bcs.
  149.   DATA  text               TYPE bcsy_text.
  150.   DATA  document           TYPE REF TO cl_document_bcs.
  151.   DATA  recipient          TYPE REF TO if_recipient_bcs.
  152.   DATA  bcs_exception      TYPE REF TO cx_bcs.
  153.   DATA  sent_to_all        TYPE os_boolean.
  154.  
  155.  
  156.   CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
  157.       EXPORTING
  158.         src_spoolid                    = spoolid
  159.         no_dialog                      = ' '
  160. *        DST_DEVICE                     =
  161. *       PDF_DESTINATION                =
  162.       IMPORTING
  163.         pdf_bytecount                  = numbytes
  164. *       pdf_spoolid                    = pdfspoolid
  165. *       OTF_PAGECOUNT                  =
  166. *       btc_jobname                    = jobname
  167. *       btc_jobcount                   = jobcount
  168.       TABLES
  169.         pdf                            = lt_pdf
  170.       EXCEPTIONS
  171.         err_no_otf_spooljob            = 1
  172.         err_no_spooljob                = 2
  173.         err_no_permission              = 3
  174.         err_conv_not_possible          = 4
  175.         err_bad_dstdevice              = 5
  176.         user_cancelled                 = 6
  177.         err_spoolerror                 = 7
  178.         err_temseerror                 = 8
  179.         err_btcjob_open_failed         = 9
  180.         err_btcjob_submit_failed       = 10
  181.         err_btcjob_close_failed        = 11.
  182.  
  183.   IF sy-subrc = 0.
  184.  
  185.     CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
  186.       EXPORTING
  187.         input_length = numbytes
  188.       IMPORTING
  189.         buffer       = lbuffer
  190.       TABLES
  191.         binary_tab   = lt_pdf
  192.       EXCEPTIONS
  193.         failed       = 1
  194.         OTHERS       = 2.
  195.  
  196.     IF sy-subrc <> 0.
  197.     ENDIF.
  198.  
  199.  
  200.     CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
  201.       EXPORTING
  202.         buffer     = lbuffer
  203.       TABLES
  204.         binary_tab = contents_hex[].
  205.   ENDIF.
  206.  
  207.   TRY.
  208. *     create the send request
  209.       send_request = cl_bcs=>create_persistent( ).
  210.  
  211. *     create the email body
  212.  
  213.       lv_language = nast-spras.
  214.       lv_name = nast-objky.
  215.  
  216.       CALL FUNCTION 'READ_TEXT'
  217.         EXPORTING
  218.           id                      = lv_id
  219.           language                = lv_language
  220.           name                    = lv_name
  221.           object                  = lv_object
  222.         TABLES
  223.           lines                   = lt_lines
  224.         EXCEPTIONS
  225.           id                      = 1
  226.           language                = 2
  227.           name                    = 3
  228.           not_found               = 4
  229.           object                  = 5
  230.           reference_check         = 6
  231.           wrong_access_to_archive = 7
  232.           OTHERS                  = 8.
  233.  
  234.       IF sy-subrc <> 0.
  235.       ENDIF.
  236.  
  237.       LOOP AT lt_lines INTO ls_line.
  238.         APPEND ls_line-tdline TO text.
  239.       ENDLOOP.
  240.  
  241.       lv_document_number = nast-objky.
  242.  
  243. * Get Partner RE Email
  244.       CALL FUNCTION 'SD_VBPA_SELECT'
  245.         EXPORTING
  246.           i_document_number = lv_document_number
  247.           i_item_number     = lv_item_number
  248.           i_partner_role    = lv_partner_role
  249.         IMPORTING
  250.           e_vbpa            = ls_vbpa
  251.         EXCEPTIONS
  252.           partner_not_found = 1
  253.           OTHERS            = 2.
  254.  
  255.       IF sy-subrc <> 0.
  256.       ENDIF.
  257.  
  258.       CLEAR lv_internetadr.
  259.       SELECT SINGLE smtp_addr FROM adr6 INTO lv_internetadr WHERE
  260.       addrnumber = ls_vbpa-adrnr AND flgdefault = 'X'.
  261.  
  262. * Email subject
  263.       CONCATENATE 'Invoice:' nast-objky INTO lv_subject .
  264.       document = cl_document_bcs=>create_document(
  265.                                 i_type    = 'RAW'
  266.                                 i_text    = text
  267.                                 i_subject = lv_subject ).
  268.  
  269. *     add list attachment to document
  270.       CONCATENATE nast-objky '.pdf' INTO lv_attname.
  271.       document->add_attachment( i_attachment_type    = 'PDF'
  272.                                 i_attachment_subject = lv_attname
  273.                                 i_att_content_hex    = contents_hex ).
  274.  
  275. *=============== Prep Send
  276.  
  277. *     add document to send request
  278.       send_request->set_document( document ).
  279.  
  280. *     create recipient and add to send request
  281.  
  282.       IF lv_internetadr IS INITIAL.
  283.         recipient = cl_sapuser_bcs=>create( sy-uname ).
  284.       ELSE.
  285.         recipient = cl_cam_address_bcs=>create_internet_address( lv_internetadr ).
  286.       ENDIF.
  287.  
  288.       send_request->add_recipient( i_recipient = recipient ).
  289.  
  290.  
  291. *     send
  292.       send_request->set_send_immediately( i_send_immediately = 'X' ).
  293.       sent_to_all = send_request->send( i_with_error_screen = 'X' ).
  294.       IF sent_to_all = 'X'.
  295.         MESSAGE s022(so).
  296.       ENDIF.
  297.  
  298.     CATCH cx_bcs INTO bcs_exception.
  299.       MESSAGE e865(so) WITH bcs_exception->error_type.
  300.   ENDTRY.
  301.  
  302.  
  303. ENDFORM.                    "processing
GeSHi ©

8)
Tron
.....
.....
 
Posts: 1112
Joined: Sat Aug 04, 2007 10:21 pm

Update:Rechnung per E-Mail

Postby Tron » Sat Aug 15, 2015 6:37 pm

Moin allerseits.
Da sich einige Bausteine zu Thema geändert haben,
hier noch mal eine Variante mit SO_NEW_DOCUMENT_ATT_SEND_API1

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. *&---------------------------------------------------------------------*
  2. *& Subroutinepool YFAKTURA_EMAIL by TRON                               *
  3. *&                                                                     *
  4. *&---------------------------------------------------------------------*
  5. *&                                                                     *
  6. *&                                                                     *
  7. *&---------------------------------------------------------------------*
  8.  
  9. * WARNING : NO POPUPS - NO COMMIT WORK IN HERE !!!!!!!!!!!!!!!!!!!!!!!!!
  10.  
  11. REPORT  yfaktura_email.
  12. DATA: retcode   LIKE sy-subrc.         "Returncode
  13. DATA: xscreen(1) TYPE c.               "Output on printer or screen
  14. TABLES: nast,                          "Messages
  15.         tnapr.                         "Programs & Forms
  16.  
  17. *&---------------------------------------------------------------------*
  18. *&      Form  ENTRY
  19. *&---------------------------------------------------------------------*
  20. *       text
  21. *----------------------------------------------------------------------*
  22. *      -->RETURN_CODE  text
  23. *      -->US_SCREEN    text
  24. *----------------------------------------------------------------------*
  25. FORM entry USING return_code TYPE i
  26.                  us_screen TYPE c.
  27.  
  28.   FIELD-SYMBOLS: <f> TYPE itcpp,
  29.                  <p> TYPE  ssfcrescl.
  30.  
  31.   DATA pgnam TYPE na_pgnam." Programname
  32.   DATA ronam TYPE na_ronam."Formname
  33.   DATA fm_name TYPE rs38l_fnam. "genr.Druckbaustein
  34.   DATA lv_vec(80).
  35.   DATA spoolid TYPE rspoid.
  36.  
  37.   CLEAR retcode.
  38.   xscreen = us_screen.
  39.  
  40. *   Call the "Original" Printroutine
  41.  
  42. * RVADIN01 = Sapscript
  43. * RLB_INVOICE = Smartforms
  44.  
  45. *-Orig program------+
  46. *                   |
  47. *-Orig Form-+       |
  48. *           |       |
  49.   PERFORM entry(RLB_INVOICE) USING return_code us_screen.
  50.  
  51. * Try Sapscript
  52.   ASSIGN ('(SAPLSTXC)ITCPP') TO <f>.
  53.   IF sy-subrc = 0 AND
  54.      NOT <f>-tdspoolid IS INITIAL AND
  55.      us_screen IS INITIAL.
  56.  
  57.     PERFORM processing USING <f>-tdspoolid.
  58.     UNASSIGN <f>.
  59.  
  60.   ELSE.
  61. * Try Smartforms
  62.     CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
  63.       EXPORTING
  64.         formname           = tnapr-sform
  65.       IMPORTING
  66.         fm_name            = fm_name
  67.       EXCEPTIONS
  68.         no_form            = 1
  69.         no_function_module = 2
  70.         OTHERS             = 3.
  71.  
  72.     IF sy-subrc <> 0.
  73.       retcode = 1.
  74.       EXIT.
  75.     ENDIF.
  76.  
  77.     SELECT SINGLE pname FROM tfdir INTO lv_vec
  78.     WHERE funcname = fm_name.
  79.     IF sy-subrc = 0.
  80.  
  81.       CONCATENATE '(' lv_vec ')JOB_OUTPUT_INFO' INTO lv_vec.
  82.       ASSIGN (lv_vec) TO <p>.
  83.  
  84.       IF sy-subrc = 0 AND
  85.       NOT <p>-spoolids[] IS INITIAL AND
  86.       us_screen IS INITIAL.
  87.  
  88.         LOOP AT <p>-spoolids INTO spoolid.
  89.           PERFORM processing USING spoolid.
  90.           EXIT.
  91.         ENDLOOP.
  92.         UNASSIGN <p>.
  93.  
  94.       ENDIF. " have Ids
  95.  
  96.     ENDIF." tfdir entry
  97.  
  98.   ENDIF." sapscript/smartforms
  99.  
  100.  
  101.   IF retcode NE 0.
  102.     return_code = 1.
  103.   ELSE.
  104.     return_code = 0.
  105.   ENDIF.
  106.  
  107. ENDFORM.                    "ENTRY
  108.  
  109. *&---------------------------------------------------------------------*
  110. *&      Form  PROCESSING
  111. *&---------------------------------------------------------------------*
  112. *       text
  113. *----------------------------------------------------------------------*
  114. FORM processing USING spoolid TYPE itcpp-tdspoolid.
  115.   DATA: numbytes TYPE i,
  116.         pdfspoolid LIKE tsp01-rqident,
  117.         pdf_content TYPE table of solix,
  118.         BIN_FILE type xstring.
  119.  
  120.  
  121.   DATA:   document_data LIKE sodocchgi1,
  122.           object_txt LIKE solisti1 OCCURS 10 WITH HEADER LINE,
  123.           object_pack LIKE sopcklsti1 OCCURS 1 WITH HEADER LINE,
  124.           receiver_list LIKE somlreci1 OCCURS 1 WITH HEADER LINE,
  125.           tab_lines TYPE i.
  126.  
  127. * for Invoice Header Text
  128.   data:
  129.   lv_ID type THEAD-TDID value 'YEML',
  130.   lv_LANGUAGE type THEAD-TDSPRAS,
  131.   lv_NAME type THEAD-TDNAME,
  132.   lv_OBJECT type THEAD-TDOBJECT value 'VBBK',
  133.   lt_lines type table of tline,
  134.   ls_line type tline.
  135.  
  136. * For partner Email
  137.   lv_ITEM_NUMBER type VBUP-POSNR value '000000',
  138.   lv_PARTNER_ROLE type VBPA-PARVW value 'RE'.
  139.  
  140.   data:
  141.   lv_DOCUMENT_NUMBER type VBUK-VBELN,
  142.   ls_vbpa type vbpa.
  143.  
  144. ****  Main - Email  ****
  145.  
  146. * Title and Description
  147.   document_data-obj_name  = 'INVOICE'.
  148.   document_data-obj_descr = nast-objky.
  149.  
  150. * Text of Email
  151.   CONCATENATE 'Rechnung' nast-objky INTO object_txt
  152.   SEPARATED BY space.
  153.   APPEND object_txt.
  154.  
  155.  
  156.   lv_language = nast-spras.
  157.   lv_NAME = nast-objky.
  158.  
  159.   CALL FUNCTION 'READ_TEXT'
  160.     EXPORTING
  161.       ID                      = lv_ID
  162.       LANGUAGE                = lv_LANGUAGE
  163.       NAME                    = lv_NAME
  164.       OBJECT                  = lv_OBJECT
  165.     TABLES
  166.       LINES                   = lt_lines
  167.     EXCEPTIONS
  168.       ID                      = 1
  169.       LANGUAGE                = 2
  170.       NAME                    = 3
  171.       NOT_FOUND               = 4
  172.       OBJECT                  = 5
  173.       REFERENCE_CHECK         = 6
  174.       WRONG_ACCESS_TO_ARCHIVE = 7
  175.       OTHERS                  = 8.
  176.  
  177.   IF SY-SUBRC <> 0.
  178.   ENDIF.
  179.  
  180.   loop at lt_lines into ls_line.
  181.     append ls_line-TDLINE to object_txt.
  182.  
  183. * Packing List(Main-Part)
  184.  
  185. * Calculate the contens length
  186.   DESCRIBE TABLE object_txt LINES tab_lines.
  187.   READ TABLE object_txt INDEX tab_lines.
  188.   document_data-doc_size = ( tab_lines - 1 ) * 255 +
  189.   STRLEN( object_txt ).
  190.  
  191. * generate the Packing List
  192.   CLEAR object_pack-transf_bin.
  193.   object_pack-head_start = 1.
  194.   object_pack-head_num   = 0.
  195.   object_pack-body_start = 1.
  196.   object_pack-body_num   = tab_lines.
  197.   object_pack-doc_type   = 'RAW'.
  198.   APPEND object_pack.
  199.        
  200. CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
  201.   EXPORTING
  202.     SRC_SPOOLID                    = spoolid
  203.     NO_DIALOG                      = 'X'
  204. *   DST_DEVICE                     =
  205.     PDF_DESTINATION                = 'X'
  206.     NO_BACKGROUND                  = 'X'
  207. *   USE_CASCADING                  = ' '
  208.   IMPORTING
  209.     PDF_BYTECOUNT                  = numbytes
  210. *   PDF_SPOOLID                    =
  211. *   OTF_PAGECOUNT                  =
  212. *   BTC_JOBNAME                    =
  213. *   BTC_JOBCOUNT                   =
  214.     BIN_FILE                       = BIN_FILE
  215. * TABLES
  216. *   PDF                            =
  217. EXCEPTIONS
  218.    ERR_NO_OTF_SPOOLJOB            = 1
  219.    ERR_NO_SPOOLJOB                = 2
  220.    ERR_NO_PERMISSION              = 3
  221.    ERR_CONV_NOT_POSSIBLE          = 4
  222.    ERR_BAD_DSTDEVICE              = 5
  223.    USER_CANCELLED                 = 6
  224.    ERR_SPOOLERROR                 = 7
  225.    ERR_TEMSEERROR                 = 8
  226.    ERR_BTCJOB_OPEN_FAILED         = 9
  227.    ERR_BTCJOB_SUBMIT_FAILED       = 10
  228.    ERR_BTCJOB_CLOSE_FAILED        = 11
  229.    OTHERS                         = 12.
  230.  
  231. .
  232.  
  233. *     -------- convert document -------------------------------
  234. pdf_content = cl_document_bcs=>xstring_to_solix( BIN_FILE ).
  235.  
  236.  
  237. * Generate the Attachment
  238. *  Packing List(Att)
  239.   DESCRIBE TABLE pdf_content LINES tab_lines.
  240.  
  241.   object_pack-doc_size = numbytes.
  242.   object_pack-transf_bin = 'X'.
  243.   object_pack-head_start = 1.
  244.   object_pack-head_num   = 0.
  245.   object_pack-body_start = 1.
  246.   object_pack-body_num   = tab_lines.
  247.   object_pack-doc_type   = 'PDF'.
  248.   object_pack-obj_name   = 'SPOOL'.
  249.   object_pack-obj_descr  = nast-objky.
  250.   APPEND object_pack.
  251.  
  252.  
  253. * generate the receiver list
  254.  
  255.   lv_DOCUMENT_NUMBER = nast-objky.
  256.  
  257. * Get Partner RE Email
  258.   CALL FUNCTION 'SD_VBPA_SELECT'
  259.     EXPORTING
  260.       I_DOCUMENT_NUMBER = lv_DOCUMENT_NUMBER
  261.       I_ITEM_NUMBER     = lv_ITEM_NUMBER
  262.       I_PARTNER_ROLE    = lv_PARTNER_ROLE
  263.     IMPORTING
  264.       E_VBPA            = ls_vbpa
  265.     EXCEPTIONS
  266.       PARTNER_NOT_FOUND = 1
  267.       OTHERS            = 2.
  268.  
  269.   IF SY-SUBRC <> 0.
  270.   ENDIF.
  271.  
  272. * Internet User
  273.   clear receiver_list.
  274.  
  275.   select single SMTP_ADDR from adr6 into receiver_list-receiver where
  276.   ADDRNUMBER = ls_vbpa-adrnr and FLGDEFAULT = 'X'.
  277.  
  278.   if sy-subrc = 0 and not receiver_list-receiver is initial.
  279.     receiver_list-rec_type = 'U'.
  280.     receiver_list-com_type ='INT'.
  281.     APPEND receiver_list.
  282.   else.
  283.     receiver_list-receiver = 'SAPUSER@LOCALHOST'.
  284.     receiver_list-rec_type = 'U'.
  285.     receiver_list-com_type ='INT'.
  286.     APPEND receiver_list.
  287.   endif.
  288.  
  289.  
  290. * Send the mail
  291.      
  292. CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
  293.   EXPORTING
  294.     DOCUMENT_DATA                    = DOCUMENT_DATA
  295. *   PUT_IN_OUTBOX                    = ' '
  296.     COMMIT_WORK                      = ' '
  297. * IMPORTING
  298. *   SENT_TO_ALL                      =
  299. *   NEW_OBJECT_ID                    =
  300.     PACKING_LIST                     = object_pack
  301. *   OBJECT_HEADER                    =
  302. *   CONTENTS_BIN                     =
  303.     CONTENTS_TXT                     = object_txt
  304.     CONTENTS_HEX                     = pdf_content
  305. *   OBJECT_PARA                      =
  306. *   OBJECT_PARB                      =
  307.     RECEIVERS                        = receiver_list
  308. EXCEPTIONS
  309.    TOO_MANY_RECEIVERS               = 1
  310.    DOCUMENT_NOT_SENT                = 2
  311.    DOCUMENT_TYPE_NOT_EXIST          = 3
  312.    OPERATION_NO_AUTHORIZATION       = 4
  313.    PARAMETER_ERROR                  = 5
  314.    X_ERROR                          = 6
  315.    ENQUEUE_ERROR                    = 7
  316.    OTHERS                           = 8.
  317.  
  318.  
  319.   IF sy-subrc <> 0.
  320.     retcode = 1.
  321.   ENDIF.
  322.  
  323. ENDFORM.                    "PROCESSING
  324.  
GeSHi ©

lg Jens
Tron
.....
.....
 
Posts: 1112
Joined: Sat Aug 04, 2007 10:21 pm

Previous

Return to Sales and Distribution

Who is online

Users browsing this forum: No registered users and 4 guests

cron