Purchase Order Print Program
Main Program:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: |
*&---------------------------------------------------------------------* *& Report ZPTP_PURCHASEDOC_FLOE *&---------------------------------------------------------------------* *& Print Program for Purchase Orders *&---------------------------------------------------------------------* ************************************************************************ * Druckroutinen für Einkaufsbelege * ************************************************************************ *----------------------------------------------------------------------* * Datenteil *----------------------------------------------------------------------* INCLUDE fm06ptop. *----------------------------------------------------------------------* * Datenbeschaffung *----------------------------------------------------------------------* *INCLUDE FM06PF01. *----------------------------------------------------------------------* * Formularausgabe *----------------------------------------------------------------------* *INCLUDE FM06PF02. *----------------------------------------------------------------------* * Sonstige PERFORM-Routinen *----------------------------------------------------------------------* *INCLUDE FM06PF03. *----------------------------------------------------------------------* * Dienstleistungsabwicklung *----------------------------------------------------------------------* *INCLUDE FM06PF04. *----------------------------------------------------------------------* * Matrixdruck für Varianten *----------------------------------------------------------------------* *INCLUDE FM06PFVA. *----------------------------------------------------------------------* * Entries *----------------------------------------------------------------------* *INCLUDE FM06PE01. *INCLUDE FM06PF05. *INCLUDE FM06PF06. *INCLUDE FM06PF07. *INCLUDE FM06PF08. *INCLUDE FM06PF09. *INCLUDE fm06pe02. INCLUDE fm06pe03. INCLUDE fm06pe04. INCLUDE zptp_varo1. |
Include:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 265: 266: 267: 268: 269: 270: 271: 272: 273: 274: 275: 276: 277: 278: 279: 280: 281: 282: 283: 284: 285: 286: 287: 288: 289: 290: 291: 292: 293: 294: 295: 296: 297: 298: 299: 300: 301: 302: 303: 304: 305: 306: 307: 308: 309: 310: 311: 312: 313: 314: 315: 316: 317: 318: 319: 320: 321: 322: 323: 324: 325: 326: 327: 328: 329: 330: 331: 332: 333: 334: 335: 336: 337: 338: 339: 340: 341: 342: 343: 344: 345: 346: 347: 348: 349: 350: 351: 352: 353: 354: 355: 356: 357: 358: 359: 360: 361: 362: 363: 364: 365: 366: 367: 368: 369: 370: 371: 372: 373: 374: 375: 376: 377: 378: 379: 380: 381: 382: 383: 384: 385: 386: 387: 388: 389: 390: 391: 392: 393: 394: 395: 396: 397: 398: 399: 400: 401: 402: 403: 404: 405: 406: 407: 408: 409: 410: 411: 412: 413: 414: 415: 416: 417: 418: 419: 420: 421: 422: 423: 424: 425: 426: 427: 428: 429: 430: 431: 432: 433: 434: 435: 436: 437: 438: 439: 440: 441: 442: 443: 444: 445: 446: 447: 448: 449: 450: 451: 452: 453: 454: 455: 456: 457: 458: 459: 460: 461: 462: 463: 464: 465: 466: 467: 468: 469: 470: 471: 472: 473: 474: 475: 476: 477: 478: 479: 480: 481: 482: 483: 484: 485: 486: 487: 488: 489: 490: 491: 492: 493: 494: 495: 496: 497: 498: 499: 500: 501: 502: 503: 504: 505: 506: 507: 508: 509: 510: 511: 512: 513: 514: 515: 516: 517: 518: 519: 520: 521: 522: 523: 524: 525: 526: 527: 528: 529: 530: 531: 532: 533: 534: 535: 536: 537: 538: 539: 540: 541: 542: 543: 544: 545: 546: 547: 548: 549: 550: 551: 552: 553: 554: 555: 556: 557: 558: 559: 560: 561: 562: 563: 564: 565: 566: 567: 568: 569: 570: 571: 572: 573: 574: 575: 576: 577: 578: 579: 580: 581: 582: 583: 584: 585: 586: 587: 588: 589: 590: 591: 592: 593: 594: 595: 596: 597: 598: 599: 600: 601: 602: 603: 604: 605: 606: 607: 608: 609: 610: 611: 612: 613: 614: 615: 616: 617: 618: 619: 620: 621: 622: 623: 624: 625: 626: 627: 628: 629: 630: 631: 632: 633: 634: 635: 636: 637: 638: 639: 640: 641: 642: 643: 644: 645: 646: 647: 648: 649: 650: 651: 652: 653: 654: 655: 656: 657: 658: 659: 660: 661: 662: 663: 664: 665: 666: 667: 668: 669: 670: 671: 672: 673: 674: 675: 676: 677: 678: 679: 680: 681: 682: 683: 684: 685: 686: 687: 688: 689: 690: 691: 692: 693: 694: 695: 696: 697: 698: 699: 700: 701: 702: 703: 704: 705: 706: 707: 708: 709: 710: 711: 712: 713: 714: 715: 716: 717: 718: |
*&---------------------------------------------------------------------* *& Include ZPTP_VARO1 *&---------------------------------------------------------------------* FIELD-SYMBOLS: <gv_returncode> TYPE sysubrc. DATA: gv_screen_display TYPE char1, gs_nast TYPE nast, cl_output_po TYPE REF TO cl_purchase_order_output, cl_output_knt TYPE REF TO cl_purchase_contract_output, cl_output_schedagr TYPE REF TO cl_purchase_sched_agr_output, cl_output_rfq TYPE REF TO cl_purchase_rfq_output, " object for rfq cl_output_schedagr_rel TYPE REF TO cl_purchase_sched_rel_output, "object for agree with release gv_ebeln TYPE ebeln, gs_ekko TYPE ekko, gv_vend_cntry TYPE lfa1-land1, gv_add_nr TYPE adr6-addrnumber, fp_outputparams TYPE sfpoutputparams, * Varo declarations gv_pdf TYPE xstring, gv_doc TYPE text40, gv_ccode TYPE /flm/cust_code, gv_ftype TYPE /flm/ftype_code, gv_template TYPE /flm/flang, gv_fver TYPE /flm/fver, gv_fid TYPE /flm/fid, gv_fidvar TYPE /flm/id_var, gs_mess TYPE bapiret2, gt_mess TYPE TABLE OF bapiret2, gs_fpe TYPE /flm/fpe, gv_cms_doc TYPE /flm/cms_doc, gt_variables TYPE /flm/vars_t, gs_variables TYPE /flm/vars_s, gv_reprint TYPE flag. * Floe declarations TYPES: BEGIN OF ty_floe_rec_email_s, email TYPE ad_smtpadr, type TYPE char1, END OF ty_floe_rec_email_s. TYPES: ty_floe_rec_email_t TYPE TABLE OF ty_floe_rec_email_s. TYPES: BEGIN OF ty_floe_var_code_s, var_code TYPE char30, value TYPE string, row_num TYPE numc3, parent_row_num TYPE numc3, END OF ty_floe_var_code_s. TYPES: ty_floe_var_code_t TYPE TABLE OF ty_floe_var_code_s. DATA: gt_rec_emails TYPE ty_floe_rec_email_t, gs_rec_email TYPE ty_floe_rec_email_s, gt_vars TYPE ty_floe_var_code_t, gs_vars TYPE ty_floe_var_code_s, gv_rec_email_addr TYPE ad_smtpadr, gs_attach TYPE /floe/att_s, gt_attach TYPE /floe/att_t, gv_im_doc TYPE /floe/doc_ref, gv_etype TYPE /floe/etype_code, gv_ebody TYPE string, gv_esubject_long TYPE /floe/esubject_long, gv_no_commit TYPE flag, gt_lines TYPE TABLE OF tline, gs_lines TYPE tline, gv_text TYPE string, gv_tdname TYPE tdobname, gv_document TYPE char10. *&--------------------------------------------------------------------* *& Form entry_varo *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* * -->ENT_RETCO text * -->ENT_SCREEN text *---------------------------------------------------------------------* FORM entry_varo USING ent_retco LIKE sy-subrc ent_screen TYPE c. * * Assign retcode ASSIGN ent_retco TO <gv_returncode>. * gv_screen_display = ent_screen. gs_nast = nast. * PERFORM processing_varo. * ENDFORM. " entry_varo *&--------------------------------------------------------------------* *& Form entry_floe *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* * -->ENT_RETCO text * -->ENT_SCREEN text *---------------------------------------------------------------------* FORM entry_floe USING ent_retco LIKE sy-subrc ent_screen TYPE c. * * Assign retcode ASSIGN ent_retco TO <gv_returncode>. * gv_screen_display = ent_screen. gs_nast = nast. * PERFORM processing_floe. * ENDFORM. " entry_varo *&---------------------------------------------------------------------* *& Form processing Varo *&---------------------------------------------------------------------* FORM processing_varo. *--- Retrieve the data PERFORM get_data. CHECK <gv_returncode> IS INITIAL. *--- Print form PERFORM print_data_varo. CHECK <gv_returncode> IS INITIAL. ENDFORM. " processing_varo *&---------------------------------------------------------------------* *& Form processing Varo *&---------------------------------------------------------------------* FORM processing_floe. * Check email type gv_etype = tnapr-fonam. CHECK gv_etype IS NOT INITIAL. *--- Retrieve the data PERFORM get_data. CHECK <gv_returncode> IS INITIAL. *--- Print form PERFORM send_data_floe. CHECK <gv_returncode> IS INITIAL. ENDFORM. " processing_varo *&--------------------------------------------------------------------* *& Form get_data *&--------------------------------------------------------------------* FORM get_data. * DATA: l_xdruvo TYPE c, l_xfz TYPE c. * IF gs_nast-aende EQ space. l_xdruvo = prntev_new. ELSE. l_xdruvo = prntev_chg. ENDIF. * IF gs_nast-kappl = 'EF'. * Purchase order CREATE OBJECT cl_output_po TYPE cl_purchase_order_output EXPORTING c_mode = l_xdruvo es_nast = gs_nast iv_preview = gv_screen_display. CALL METHOD cl_output_po->read. gv_add_nr = cl_output_po->is_ekko-adrnr. gv_vend_cntry = cl_output_po->is_ekko-land_vend. ELSEIF nast-kappl = 'EL'. *Sceduling Agreement with release CREATE OBJECT cl_output_schedagr_rel TYPE cl_purchase_sched_rel_output EXPORTING c_mode = l_xdruvo xfz = l_xfz es_nast = gs_nast. CALL METHOD cl_output_schedagr_rel->read. gv_add_nr = cl_output_schedagr_rel->is_ekko-adrnr. gv_vend_cntry = cl_output_schedagr_rel->is_ekko-land_vend. ELSE. MOVE nast-objky(10) TO gv_ebeln. SELECT SINGLE * FROM ekko INTO gs_ekko WHERE ebeln EQ gv_ebeln. IF gs_ekko-bstyp = 'K'. * Contract CREATE OBJECT cl_output_knt TYPE cl_purchase_contract_output EXPORTING c_mode = l_xdruvo es_nast = gs_nast. CALL METHOD cl_output_knt->read. gv_add_nr = cl_output_knt->is_ekko-adrnr. gv_vend_cntry = cl_output_knt->is_ekko-land_vend. ELSEIF gs_ekko-bstyp = 'A'. *RFQ CREATE OBJECT cl_output_rfq TYPE cl_purchase_rfq_output EXPORTING c_mode = l_xdruvo es_nast = gs_nast. CALL METHOD cl_output_rfq->read. gv_add_nr = cl_output_rfq->is_ekko-adrnr. gv_vend_cntry = cl_output_rfq->is_ekko-land_vend. ELSE. * Scheduling Agreement CREATE OBJECT cl_output_schedagr TYPE cl_purchase_sched_agr_output EXPORTING c_mode = l_xdruvo es_nast = gs_nast. CALL METHOD cl_output_schedagr->read. gv_add_nr = cl_output_schedagr->is_ekko-adrnr. gv_vend_cntry = cl_output_schedagr->is_ekko-land_vend. ENDIF. ENDIF. * IF nast-kappl = 'EF'. <gv_returncode> = cl_output_po->ret_code. IF <gv_returncode> IS NOT INITIAL. " 1468512 syst-msgv1 = gs_ekko-ebeln. syst-msgno = '140'. ENDIF. ELSEIF nast-kappl = 'EL'. <gv_returncode> = cl_output_schedagr_rel->ret_code. IF <gv_returncode> IS NOT INITIAL. " 1468512 syst-msgv1 = gs_ekko-ebeln. syst-msgno = '140'. ENDIF. ELSE. IF gs_ekko-bstyp = 'K'. <gv_returncode> = cl_output_knt->ret_code. IF <gv_returncode> IS NOT INITIAL. " 1468512 syst-msgv1 = gs_ekko-ebeln. syst-msgno = '140'. ENDIF. ELSEIF gs_ekko-bstyp = 'A'. <gv_returncode> = cl_output_rfq->ret_code. IF <gv_returncode> IS NOT INITIAL. " 1468512 syst-msgv1 = gs_ekko-ebeln. syst-msgno = '140'. ENDIF. ELSE . <gv_returncode> = cl_output_schedagr->ret_code. IF <gv_returncode> IS NOT INITIAL. " 1468512 syst-msgv1 = gs_ekko-ebeln. syst-msgno = '140'. ENDIF. ENDIF. ENDIF. IF <gv_returncode> IS NOT INITIAL. CALL FUNCTION 'NAST_PROTOCOL_UPDATE' EXPORTING msg_arbgb = 'ME' msg_nr = syst-msgno msg_ty = 'W' msg_v1 = syst-msgv1 msg_v2 = syst-msgv2 msg_v3 = syst-msgv3 msg_v4 = syst-msgv4 EXCEPTIONS OTHERS = 1. ENDIF. * ENDFORM. " get_data *&--------------------------------------------------------------------* *& Form print_data_varo. *&--------------------------------------------------------------------* FORM print_data_varo. PERFORM fill_control_structure USING gs_nast gv_screen_display CHANGING fp_outputparams. * Set up defaults gv_ftype = tnapr-sform. gv_template = nast-spras. gv_fver = '00'. gv_doc = nast-objky. CLEAR gv_reprint. *----------------------------------------------------------------------* * Check for Re-print *----------------------------------------------------------------------* SELECT * INTO gs_nast FROM nast WHERE kappl = gs_nast-kappl AND objky = gs_nast-objky AND kschl = gs_nast-kschl AND spras = gs_nast-spras AND parnr = gs_nast-parnr AND parvw = gs_nast-parvw AND nacha BETWEEN '1' AND '4' AND vstat = '1'. IF gs_nast-aende IS INITIAL. gv_reprint = 'X'. ENDIF. ENDSELECT. * * Remove reprint logic CLEAR gv_reprint. * Find previous output for reprint. * IF gv_reprint = 'X'. * SELECT * FROM /flm/fpe UP TO 1 ROWS INTO gs_fpe WHERE ftype = gv_ftype AND flang = gv_template AND document = gv_doc ORDER BY id DESCENDING. ENDSELECT. * IF sy-subrc EQ 0. * Previous output found * gv_ftype = gs_fpe-ftype. gv_fver = gs_fpe-fver. gv_template = gs_fpe-template. gv_fid = gs_fpe-id. gv_doc = gs_fpe-document. ELSE. * No form found CLEAR gv_reprint. ENDIF. * ENDIF. *----------------------------------------------------------------------* * Fill variables *----------------------------------------------------------------------* CLEAR gs_variables. gs_variables-var_code = 'REPRINT'. gs_variables-value = gv_reprint. APPEND gs_variables TO gt_variables. CLEAR gs_variables. * gs_variables-var_code = 'KSCHL'. gs_variables-value = gs_nast-kschl. APPEND gs_variables TO gt_variables. CLEAR gs_variables. * gs_variables-var_code = 'SPRAS'. gs_variables-value = gs_nast-spras. APPEND gs_variables TO gt_variables. * * *----------------------------------------------------------------------* * Handle output scenario *----------------------------------------------------------------------* IF gv_screen_display NE 'X'. * CALL FUNCTION '/FLM/PDF_PRINT' EXPORTING im_ftype = gv_ftype im_outputparams = fp_outputparams im_toption = gv_template im_fver = gv_fver im_fid = gv_fid im_document = gv_doc im_variables = gt_variables IMPORTING ex_pdf = gv_pdf ex_subrc = <gv_returncode> ex_mess = gs_mess. * CALL FUNCTION 'NAST_PROTOCOL_UPDATE' EXPORTING msg_arbgb = gs_mess-id msg_nr = gs_mess-number msg_ty = gs_mess-type msg_v1 = gs_mess-message_v1 msg_v2 = gs_mess-message_v2 msg_v3 = gs_mess-message_v3 msg_v4 = gs_mess-message_v4 EXCEPTIONS OTHERS = 0. IF <gv_returncode> <> 0. RETURN. ENDIF. * ELSE. *----------------------------------------------------------------------* * Call screen to preview PDF form *----------------------------------------------------------------------* CALL FUNCTION '/FLM/PREVIEW_OUTPUT_PDF' EXPORTING im_ftype = gv_ftype im_fid = gv_fid im_fver = gv_fver im_toption = gv_template im_document = gv_doc im_variables = gt_variables * IM_DNS_SUB = * IM_HTTPS = IMPORTING ex_subrc = <gv_returncode> ex_mess = gs_mess. * ENDIF. * ENDFORM. " print_data_varo. *&---------------------------------------------------------------------* *& Form send_data_floe *&---------------------------------------------------------------------* FORM send_data_floe. * Prepare comms data PERFORM prepare_comms_data. CHECK <gv_returncode> IS INITIAL. *---------------------------------------------------------------------* * Fill recipient * Add additional recipients in recipient user-exit *---------------------------------------------------------------------* gs_rec_email-email = gv_rec_email_addr. gs_rec_email-type = '1'. APPEND gs_rec_email TO gt_rec_emails. *----------------------------------------------------------------------* * Add variables * Add additional variables in email data user-exit *----------------------------------------------------------------------* CLEAR gs_variables. gs_variables-var_code = 'REPRINT'. gs_variables-value = gv_reprint. APPEND gs_variables TO gt_variables. "Varo APPEND gs_variables TO gt_vars. "Floe * CLEAR gs_variables. gs_variables-var_code = 'KSCHL'. gs_variables-value = gs_nast-kschl. APPEND gs_variables TO gt_variables. "Varo APPEND gs_variables TO gt_vars. "Floe * CLEAR gs_variables. gs_variables-var_code = 'SPRAS'. gs_variables-value = gs_nast-spras. APPEND gs_variables TO gt_variables. "Varo APPEND gs_variables TO gt_vars. "Floe * CLEAR gs_variables. gs_variables-var_code = 'EBELN'. gs_variables-value = cl_output_po->is_ekko-ebeln. APPEND gs_variables TO gt_vars. "Floe * CLEAR gs_variables. gs_variables-var_code = 'BEDAT'. gs_variables-value = cl_output_po->is_ekko-bedat. APPEND gs_variables TO gt_vars. "Floe * IF gv_screen_display IS INITIAL. CLEAR gs_variables. gs_variables-var_code = 'FLOE_SEND'. gs_variables-value = 'X'. APPEND gs_variables TO gt_vars. "Floe ENDIF. *---------------------------------------------------------------------* * Fill PDF form parameters if one is required. *---------------------------------------------------------------------* gv_ftype = tnapr-sform. IF gv_ftype IS NOT INITIAL. * Generate PDF attachment with Varo, form type ftype. * * Set up defaults gv_ftype = tnapr-sform. gv_template = gs_nast-spras. gv_fver = '00'. gv_doc = gs_nast-objky. gv_document = gs_nast-objky. *----------------------------------------------------------------------* * Check if this is a re-print and set form id *----------------------------------------------------------------------* * SELECT * FROM /flm/fpe UP TO 1 ROWS INTO gs_fpe WHERE ftype = gv_ftype AND flang = gv_template AND document = gv_doc ORDER BY id DESCENDING. ENDSELECT. * IF sy-subrc EQ 0 AND gs_nast-aende IS INITIAL. * Previous output found * gv_ftype = gs_fpe-ftype. gv_fver = gs_fpe-fver. gv_template = gs_fpe-template. gv_fid = gs_fpe-id. gv_doc = gs_fpe-document. * gv_reprint = 'X'. ENDIF. *----------------------------------------------------------------------* * Is this a PDF preview? *----------------------------------------------------------------------* IF NOT gv_screen_display IS INITIAL. CALL FUNCTION '/FLM/PREVIEW_OUTPUT_PDF' EXPORTING im_ftype = gv_ftype im_fid = gv_fid im_fver = gv_fver im_toption = gv_template im_document = gv_doc im_variables = gt_variables * IM_DNS_SUB = * IM_HTTPS = IMPORTING ex_subrc = <gv_returncode> ex_mess = gs_mess. RETURN. ELSE. * Call Varo to generate the PDF * CALL FUNCTION '/FLM/OUTPUT_PDF_PDL_OUT' EXPORTING im_ftype = gv_ftype im_fid = gv_fid im_fver = gv_fver im_toption = gv_template im_document = gv_doc im_variables = gt_variables im_no_print = 'X' * IM_PDLTYPE = * IM_XDCNAME = IMPORTING ex_pdf = gv_pdf * EX_PDL = * EX_PAGECOUNT = * EX_JOB_ID = ex_subrc = <gv_returncode> ex_mess = gs_mess. * CALL FUNCTION 'NAST_PROTOCOL_UPDATE' EXPORTING msg_arbgb = gs_mess-id msg_nr = gs_mess-number msg_ty = gs_mess-type msg_v1 = gs_mess-message_v1 msg_v2 = gs_mess-message_v2 msg_v3 = gs_mess-message_v3 msg_v4 = gs_mess-message_v4 EXCEPTIONS OTHERS = 0. IF <gv_returncode> <> 0. RETURN. ENDIF. * * Get new form id etc. gv_cms_doc = gs_mess-parameter. * CALL METHOD /flm/core=>split_xdp_cms_doc EXPORTING im_cms_doc = gv_cms_doc IMPORTING ex_ccode = gv_ccode ex_ftype = gv_ftype ex_fver = gv_fver ex_flang = gv_template ex_fid = gv_fid ex_fid_var = gv_fidvar. * *---------------------------------------------------------------------* * Add attachment * Add additional attachments in attachment user-exit *---------------------------------------------------------------------* * CONCATENATE 'PO_' gv_document '.pdf' INTO gs_attach-att_filename. gs_attach-att_description = 'Purchase_Order_output'. gs_attach-att_data = gv_pdf. APPEND gs_attach TO gt_attach. ENDIF. ENDIF. *------------------------------------------------------------------- * Determine whether this is run as update task * CLEAR: gv_inupd, gv_no_commit. CALL METHOD cl_system_transaction_state=>get_in_update_task RECEIVING in_update_task = gv_inupd. * IF gv_inupd = 1. gv_no_commit = 'X'. ENDIF. * *----------------------------------------------------------------------* * Call Floe API *----------------------------------------------------------------------* CLEAR gv_ebody. * gv_im_doc = gv_document. * CALL FUNCTION '/FLOE/EMAIL_OUT' EXPORTING im_etype = gv_etype im_elang = gs_nast-spras im_document = gv_im_doc im_rec_emails = gt_rec_emails im_variables = gt_vars im_send_immediately = 'X' im_attachments = gt_attach im_preview = gv_screen_display im_no_commit = gv_no_commit IMPORTING ex_subrc = <gv_returncode> ex_ebody = gv_ebody ex_mess = gt_mess ex_rec_emails = gt_rec_emails ex_attachments = gt_attach ex_esubject_long = gv_esubject_long. LOOP AT gt_mess INTO gs_mess. CALL FUNCTION 'NAST_PROTOCOL_UPDATE' EXPORTING msg_arbgb = gs_mess-id msg_nr = gs_mess-number msg_ty = gs_mess-type msg_v1 = gs_mess-message_v1 msg_v2 = gs_mess-message_v2 msg_v3 = gs_mess-message_v3 msg_v4 = gs_mess-message_v4 EXCEPTIONS OTHERS = 0. ENDLOOP. * * Drop out if API has thrown an error IF <gv_returncode> NE 0. RETURN. ENDIF. * *----------------------------------------------------------------------* * Preview Email if required. *----------------------------------------------------------------------* IF NOT gv_screen_display IS INITIAL. * CALL FUNCTION '/FLOE/EMAIL_VIEWER' EXPORTING im_preview = 'X' * IM_ETYPE = * IM_EID = im_esubject = 'FLOE Preview' im_ebody = gv_ebody im_rec_emails = gt_rec_emails im_attachments = gt_attach IMPORTING ex_subrc = <gv_returncode>. * ENDIF. * ENDFORM. " send_data_floe *&---------------------------------------------------------------------* *& Form prepare comms data *&---------------------------------------------------------------------* FORM prepare_comms_data. * CALL FUNCTION 'ADDR_GET_NEXT_COMM_TYPE' EXPORTING strategy = gs_nast-tcode address_number = gv_add_nr IMPORTING comm_type = gv_comm_type comm_values = gv_comm_values EXCEPTIONS address_not_exist = 1 person_not_exist = 2 no_comm_type_found = 3 internal_error = 4 parameter_error = 5 OTHERS = 6. * gv_rec_email_addr = gv_comm_values-adsmtp-smtp_addr. * CHECK gv_rec_email_addr IS NOT INITIAL. * ENDFORM. " prepare comms data |