<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic extended segment in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/extended-segment/m-p/3029027#M716317</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi to all&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i added two custom segments for a basic type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i need to populate those custom segments based on the data existing in the sap defined segments.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;can any body help me regarding the above.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;can any body provide sample code or any link for populating the extended segments.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt;radha&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 12 Nov 2007 08:18:38 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-11-12T08:18:38Z</dc:date>
    <item>
      <title>extended segment</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/extended-segment/m-p/3029027#M716317</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi to all&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i added two custom segments for a basic type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i need to populate those custom segments based on the data existing in the sap defined segments.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;can any body help me regarding the above.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;can any body provide sample code or any link for populating the extended segments.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt;radha&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Nov 2007 08:18:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/extended-segment/m-p/3029027#M716317</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-12T08:18:38Z</dc:date>
    </item>
    <item>
      <title>Re: extended segment</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/extended-segment/m-p/3029028#M716318</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Inbound:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ZS7BM000006 message-id ZS7.&lt;/P&gt;&lt;P&gt;*______________________________________________________________________&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*/ Program Name: Creation of DESADV &amp;amp; INVOIC IDocs from file E021&lt;/P&gt;&lt;P&gt;*/ Description : This program reads in external file E021 containing&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               shipping and invoice data from internal vendors and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               creates one DESADV and one INVOIC IDoc per invoice.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*/ Transaction : n/a - run from job Z_ccc_S7B_Annnnn, where&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               'ccc' = 3-digit client and 'nnnnn' = zero-filled&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               sequence number matching the scheduled job for E020.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*______________________________________________________________________&lt;/P&gt;&lt;P&gt;tables:  lfa1,&lt;/P&gt;&lt;P&gt;         lfm1,&lt;/P&gt;&lt;P&gt;         ekpo,&lt;/P&gt;&lt;P&gt;         eine,&lt;/P&gt;&lt;P&gt;         e1edk01,&lt;/P&gt;&lt;P&gt;         e1edk02,&lt;/P&gt;&lt;P&gt;         e1edk07,&lt;/P&gt;&lt;P&gt;         e1edk08,&lt;/P&gt;&lt;P&gt;         e1edk06,&lt;/P&gt;&lt;P&gt;         e1edk03,&lt;/P&gt;&lt;P&gt;         e1edka1,&lt;/P&gt;&lt;P&gt;         e1edka2,&lt;/P&gt;&lt;P&gt;         e1edp07,&lt;/P&gt;&lt;P&gt;         e1edp09,&lt;/P&gt;&lt;P&gt;         e1edp19,&lt;/P&gt;&lt;P&gt;         e1edp01,&lt;/P&gt;&lt;P&gt;         e1edp02,&lt;/P&gt;&lt;P&gt;         e1edp26,&lt;/P&gt;&lt;P&gt;         e1edp04,&lt;/P&gt;&lt;P&gt;         e1eds01,&lt;/P&gt;&lt;P&gt;         e1eds02,&lt;/P&gt;&lt;P&gt;         zst7f_ty_vendors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters:  p_path like PATH-PATHEXTERN&lt;/P&gt;&lt;P&gt;                   default '/ftp/atac/in/'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  INFILE LIKE PATH-PATHEXTERN,&lt;/P&gt;&lt;P&gt;       back_path(7) type c value 'backup/',&lt;/P&gt;&lt;P&gt;       offset like sy-fdpos,&lt;/P&gt;&lt;P&gt;       p07_ctr like sy-index,&lt;/P&gt;&lt;P&gt;       invoice_total type p decimals 3,&lt;/P&gt;&lt;P&gt;       d_seg_num like sy-index,&lt;/P&gt;&lt;P&gt;       i_seg_num like sy-index.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  OUTFILE LIKE PATH-PATHEXTERN,&lt;/P&gt;&lt;P&gt;       today(8)     type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  begin of uty_vendors occurs 10,&lt;/P&gt;&lt;P&gt;          lifnr like lfa1-lifnr,&lt;/P&gt;&lt;P&gt;          waers like lfm1-waers,&lt;/P&gt;&lt;P&gt;          name_abbr like zst7f_ty_vendors-name_abbr,&lt;/P&gt;&lt;P&gt;          ship_days like zst7f_ty_vendors-ship_days,&lt;/P&gt;&lt;P&gt;       end of uty_vendors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  iZSS7B21 like ZSS7B21.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  desadvdata like edi_dd occurs 5 with header line.&lt;/P&gt;&lt;P&gt;data:  invoicdata like edi_dd occurs 5 with header line.&lt;/P&gt;&lt;P&gt;data:  dedidc like edi_dc occurs 1 with header line.&lt;/P&gt;&lt;P&gt;data:  iedidc like edi_dc occurs 1 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  begin of ie021 occurs 10,&lt;/P&gt;&lt;P&gt;        lifnr            like lfa1-lifnr,&lt;/P&gt;&lt;P&gt;        ship_days        like zst7f_ty_vendors-ship_days,&lt;/P&gt;&lt;P&gt;        invoice_no       like e1edk08-vbeln,&lt;/P&gt;&lt;P&gt;        stat             like e1edk01-action,&lt;/P&gt;&lt;P&gt;        po_number(10)    type n,&lt;/P&gt;&lt;P&gt;        po_lineno(5)     type n,&lt;/P&gt;&lt;P&gt;        slip_number      like e1edp09-vbeln,&lt;/P&gt;&lt;P&gt;        shipto_id        like e1edka1-partn,&lt;/P&gt;&lt;P&gt;        vendor_id        like e1edka1-partn,&lt;/P&gt;&lt;P&gt;        endcust_name     like e1edka1-name1,&lt;/P&gt;&lt;P&gt;        cust_partno      like e1edp09-kdmat,  "char 35&lt;/P&gt;&lt;P&gt;        vendor_partno    like e1edp09-matnr,  "char 35&lt;/P&gt;&lt;P&gt;        invoice_qty      like e1edp09-lfimg,&lt;/P&gt;&lt;P&gt;        qty_uom          like e1edp01-menee,&lt;/P&gt;&lt;P&gt;        unit_price       like e1edp01-vprei,&lt;/P&gt;&lt;P&gt;        price_uom        like e1edp01-pmene,&lt;/P&gt;&lt;P&gt;        price_qty        like e1edp01-peinh,&lt;/P&gt;&lt;P&gt;        line_amount      like e1edp26-betrg,&lt;/P&gt;&lt;P&gt;        currency         like e1edk01-curcy,&lt;/P&gt;&lt;P&gt;        etd              like e1edk06-datum, "ship date&lt;/P&gt;&lt;P&gt;        eta              like e1edk06-datum, "delivery date&lt;/P&gt;&lt;P&gt;        ship_id          like e1edk08-traid,&lt;/P&gt;&lt;P&gt;        ship_method      like e1edk08-traty,&lt;/P&gt;&lt;P&gt;        create_date      like e1edk03-datum,&lt;/P&gt;&lt;P&gt;        plant            like ekpo-werks,&lt;/P&gt;&lt;P&gt;       end of ie021.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: save_po like ie021-po_number,&lt;/P&gt;&lt;P&gt;      save_line like ie021-po_lineno,&lt;/P&gt;&lt;P&gt;      save_stat like ie021-stat,&lt;/P&gt;&lt;P&gt;      save_invoice like ie021-invoice_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;constants: hun_thou type p decimals 5 value '100000',&lt;/P&gt;&lt;P&gt;           thou type p decimals 3 value '1000'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      DEFINITION:  append_idoc_rec&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      add a data record to the IDoc internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define append_idoc_rec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;1-tabnam = &amp;amp;1-segnam.&lt;/P&gt;&lt;P&gt;&amp;amp;2_seg_num = &amp;amp;2_seg_num + 1.&lt;/P&gt;&lt;P&gt;&amp;amp;1-segnum = &amp;amp;2_seg_num.&lt;/P&gt;&lt;P&gt;shift &amp;amp;1-segnum left deleting leading space.&lt;/P&gt;&lt;P&gt;append &amp;amp;1.&lt;/P&gt;&lt;P&gt;clear &amp;amp;1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-definition.       " append_idoc_rec&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MAIN PROCESSING LOOP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;today = sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;find all internal vendors&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;select a~lifnr&lt;/P&gt;&lt;P&gt;       b~waers&lt;/P&gt;&lt;P&gt;       c&lt;SUB&gt;name_abbr  c&lt;/SUB&gt;ship_days&lt;/P&gt;&lt;P&gt;   into corresponding fields of table uty_vendors&lt;/P&gt;&lt;P&gt;     from lfa1 as a&lt;/P&gt;&lt;P&gt;          inner join lfm1 as b&lt;/P&gt;&lt;P&gt;             on a&lt;SUB&gt;lifnr = b&lt;/SUB&gt;lifnr&lt;/P&gt;&lt;P&gt;          inner join zst7f_ty_vendors as c&lt;/P&gt;&lt;P&gt;             on a&lt;SUB&gt;lifnr = c&lt;/SUB&gt;lifnr&lt;/P&gt;&lt;P&gt;     where a~ktokk = 'ZZTY' and&lt;/P&gt;&lt;P&gt;           b~ekorg = '7100' and&lt;/P&gt;&lt;P&gt;           c~ship_code = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform init_desadv.&lt;/P&gt;&lt;P&gt;perform init_invoic.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;concatenate 'SAP' sy-sysid(3) into: iedidc-sndpor, dedidc-sndpor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at uty_vendors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear ie021. refresh ie021.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not uty_vendors-name_abbr is initial.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;datafiles are received with naming convention:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;E020_&amp;lt;customer name abbreviation&amp;gt;_UTY&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    concatenate p_path 'E021_' uty_vendors-name_abbr '_UTY'&lt;/P&gt;&lt;P&gt;        into infile.&lt;/P&gt;&lt;P&gt;    if not sy-subrc is initial.  "pathname too long&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filename too long: &amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      message i016 with infile.&lt;/P&gt;&lt;P&gt;      continue.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    condense infile.&lt;/P&gt;&lt;P&gt;    OPEN DATASET INFILE FOR INPUT IN TEXT MODE.&lt;/P&gt;&lt;P&gt;    if not sy-subrc is initial.&lt;/P&gt;&lt;P&gt;*'Cannot open dataset &amp;amp; on &amp;amp;'&lt;/P&gt;&lt;P&gt;      message i013 with infile sy-datum.&lt;/P&gt;&lt;P&gt;      continue.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      concatenate p_path back_path 'E021_'&lt;/P&gt;&lt;P&gt;          uty_vendors-name_abbr '_UTY' today&lt;/P&gt;&lt;P&gt;                into outfile.&lt;/P&gt;&lt;P&gt;      if not sy-subrc is initial.  "pathname too long&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filename too long: &amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        message i016 with outfile.&lt;/P&gt;&lt;P&gt;        continue.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      condense outfile.&lt;/P&gt;&lt;P&gt;      OPEN DATASET OUTFILE FOR OUTPUT IN TEXT MODE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if the datestamped file cannot be created, do not process the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;input file, because the input file is deleted after processing,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and there would be no record of the data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      if not sy-subrc is initial.&lt;/P&gt;&lt;P&gt;*'ERROR opening file &amp;amp; for output'&lt;/P&gt;&lt;P&gt;        close dataset infile.&lt;/P&gt;&lt;P&gt;        message i033 with outfile.&lt;/P&gt;&lt;P&gt;        continue.  "process next vendor's file&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      do.&lt;/P&gt;&lt;P&gt;        read dataset infile into izss7b21.&lt;/P&gt;&lt;P&gt;        case sy-subrc.&lt;/P&gt;&lt;P&gt;          when 0.&lt;/P&gt;&lt;P&gt;            transfer izss7b21 to outfile.&lt;/P&gt;&lt;P&gt;            if izss7b21-datacode = 'T'. "trailer rec&lt;/P&gt;&lt;P&gt;              perform process_one_vendor using infile.&lt;/P&gt;&lt;P&gt;              exit.  "process next vendor's file&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;            check: izss7b21-datacode = 'A'. "data rec&lt;/P&gt;&lt;P&gt;            case izss7b21-status.&lt;/P&gt;&lt;P&gt;              when ' '.  "new&lt;/P&gt;&lt;P&gt;                ie021-stat = '000'.&lt;/P&gt;&lt;P&gt;              when 'M'.  "modification&lt;/P&gt;&lt;P&gt;                ie021-stat = '002'.&lt;/P&gt;&lt;P&gt;              when 'D'.  "deletion&lt;/P&gt;&lt;P&gt;                ie021-stat = '003'.&lt;/P&gt;&lt;P&gt;            endcase.&lt;/P&gt;&lt;P&gt;            move-corresponding uty_vendors to ie021.&lt;/P&gt;&lt;P&gt;            move-corresponding izss7b21 to ie021.&lt;/P&gt;&lt;P&gt;            perform convert_po_no using izss7b21-pono_poline&lt;/P&gt;&lt;P&gt;                               changing ie021-po_number&lt;/P&gt;&lt;P&gt;                                        ie021-po_lineno.&lt;/P&gt;&lt;P&gt;            perform convert_dates using ie021-lifnr&lt;/P&gt;&lt;P&gt;                                        izss7b21-etd&lt;/P&gt;&lt;P&gt;                                        izss7b21-eta&lt;/P&gt;&lt;P&gt;                                        izss7b21-ship_method&lt;/P&gt;&lt;P&gt;                                        izss7b21-create_date&lt;/P&gt;&lt;P&gt;                               changing ie021-eta&lt;/P&gt;&lt;P&gt;                                        ie021-ship_days.&lt;/P&gt;&lt;P&gt;            perform quantity_conversion&lt;/P&gt;&lt;P&gt;                                using izss7b21-qty_uom&lt;/P&gt;&lt;P&gt;                                      izss7b21-invoice_qty&lt;/P&gt;&lt;P&gt;                                      izss7b21-unit_price&lt;/P&gt;&lt;P&gt;                                changing ie021-qty_uom&lt;/P&gt;&lt;P&gt;                                         ie021-invoice_qty&lt;/P&gt;&lt;P&gt;                                      izss7b21-line_amount.&lt;/P&gt;&lt;P&gt;            perform money_conversion&lt;/P&gt;&lt;P&gt;                                using izss7b21-currency&lt;/P&gt;&lt;P&gt;                                      izss7b21-unit_price&lt;/P&gt;&lt;P&gt;                                      izss7b21-price_uom&lt;/P&gt;&lt;P&gt;                                      izss7b21-line_amount&lt;/P&gt;&lt;P&gt;                                changing ie021-currency&lt;/P&gt;&lt;P&gt;                                         ie021-price_uom&lt;/P&gt;&lt;P&gt;                                         ie021-price_qty&lt;/P&gt;&lt;P&gt;                                         ie021-unit_price&lt;/P&gt;&lt;P&gt;                                         ie021-line_amount.&lt;/P&gt;&lt;P&gt;            perform SAP_vendor_partno&lt;/P&gt;&lt;P&gt;                                changing ie021-cust_partno.&lt;/P&gt;&lt;P&gt;            append ie021.&lt;/P&gt;&lt;P&gt;          when 4.  "EOF&lt;/P&gt;&lt;P&gt;            perform process_one_vendor using infile.&lt;/P&gt;&lt;P&gt;            exit.  "process next vendor's file&lt;/P&gt;&lt;P&gt;          when others.&lt;/P&gt;&lt;P&gt;*ERROR reading dataset &amp;amp; - &amp;amp;&lt;/P&gt;&lt;P&gt;            message i015 with infile sy-datum.&lt;/P&gt;&lt;P&gt;            exit.&lt;/P&gt;&lt;P&gt;        endcase.&lt;/P&gt;&lt;P&gt;      enddo.&lt;/P&gt;&lt;P&gt;      close dataset: infile, outfile.&lt;/P&gt;&lt;P&gt;      delete dataset infile.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endloop. "UTY_VENDORS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  process_one_vendor&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Pre-processed records from one vendor file are now in the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      internal table ie021 - ready to create IDocs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_one_vendor using value(infile).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort ie021 by invoice_no stat po_number po_lineno.&lt;/P&gt;&lt;P&gt;  loop at ie021.&lt;/P&gt;&lt;P&gt;    if ( ie021-invoice_no &amp;lt;&amp;gt; save_invoice or&lt;/P&gt;&lt;P&gt;         ie021-stat &amp;lt;&amp;gt; save_stat ).&lt;/P&gt;&lt;P&gt;      if sy-tabix &amp;gt; 1.&lt;/P&gt;&lt;P&gt;        perform post_idocs using ie021-stat.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      perform idoc_header_segs using ie021-stat.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    if ( ie021-stat &amp;lt;&amp;gt; save_stat or&lt;/P&gt;&lt;P&gt;         ie021-po_number &amp;lt;&amp;gt; save_po or&lt;/P&gt;&lt;P&gt;         ie021-po_lineno &amp;lt;&amp;gt; save_line or&lt;/P&gt;&lt;P&gt;         ie021-invoice_no &amp;lt;&amp;gt; save_invoice ).&lt;/P&gt;&lt;P&gt;      if ( sy-tabix &amp;gt; 1 and&lt;/P&gt;&lt;P&gt;           ie021-stat = '000' ).&lt;/P&gt;&lt;P&gt;        perform idoc_poheader_segs.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    perform idoc_item_segs using ie021-stat.&lt;/P&gt;&lt;P&gt;    save_po = ie021-po_number.&lt;/P&gt;&lt;P&gt;    save_line = ie021-po_lineno.&lt;/P&gt;&lt;P&gt;    save_invoice = ie021-invoice_no.&lt;/P&gt;&lt;P&gt;    save_stat = ie021-stat.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;  perform post_idocs using ie021-stat.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;File successfully processed: &amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  message s035 with infile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " process_one_vendor&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  convert_po_no&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Break the PO number &amp;amp; line field into separate fields&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM convert_po_no using value(infield)&lt;/P&gt;&lt;P&gt;                   changing po_number like ie021-po_number&lt;/P&gt;&lt;P&gt;                            po_line like ie021-po_lineno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  cpos like sy-fdpos,&lt;/P&gt;&lt;P&gt;       lpos like sy-fdpos,&lt;/P&gt;&lt;P&gt;       cline(6) type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if the infield contains a hyphen, assume that the preceding characters&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;represent the po number, if they are numeric. The po line number is&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;assumed to be all numeric characters after the hyphen.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if infield ca '-'.&lt;/P&gt;&lt;P&gt;    if infield(sy-fdpos) co ' 0123456789'.  "numeric&lt;/P&gt;&lt;P&gt;      po_number = infield(sy-fdpos).&lt;/P&gt;&lt;P&gt;      cpos = sy-fdpos + 1.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  else.  "no hyphen - PTY&lt;/P&gt;&lt;P&gt;    if infield(2) = '71'.  "SAP number range&lt;/P&gt;&lt;P&gt;      cpos = 10.&lt;/P&gt;&lt;P&gt;    else.                  "SyteLine number&lt;/P&gt;&lt;P&gt;      cpos = 6.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    if infield(cpos) co ' 0123456789'.  "numeric&lt;/P&gt;&lt;P&gt;      po_number = infield(cpos).&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  if not po_number is initial.&lt;/P&gt;&lt;P&gt;    while infield+cpos(1) co '0123456789'.&lt;/P&gt;&lt;P&gt;      cline&lt;EM&gt;lpos(1) = infield&lt;/EM&gt;cpos(1).&lt;/P&gt;&lt;P&gt;      lpos = lpos + 1.&lt;/P&gt;&lt;P&gt;      cpos = cpos + 1.&lt;/P&gt;&lt;P&gt;    endwhile.&lt;/P&gt;&lt;P&gt;    shift cline left deleting leading '0'.&lt;/P&gt;&lt;P&gt;    if not cline is initial.&lt;/P&gt;&lt;P&gt;      po_line = cline.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Put out a warning in the job log, but create the IDoc to save the data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if ( po_number is initial or&lt;/P&gt;&lt;P&gt;       po_line is initial ).&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PO number - line item conversion failed: &amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    message i034 with infield.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " convert_po_no&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  convert_dates&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Convert ship date to delivery date, if necessary&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM convert_dates using value(vendor_no)&lt;/P&gt;&lt;P&gt;                         value(i_ship_date)&lt;/P&gt;&lt;P&gt;                         value(i_delivery_date)&lt;/P&gt;&lt;P&gt;                         value(i_ship_code)&lt;/P&gt;&lt;P&gt;                         value(i_create_date)&lt;/P&gt;&lt;P&gt;                changing o_delivery_date&lt;/P&gt;&lt;P&gt;                         ship_days.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  ship_date type d.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if delivery date not sent, calculate it from ship date plus&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ship days.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Note that this logic could leave delivery date blank,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if ship date is not numeric.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if ( i_delivery_date is initial or&lt;/P&gt;&lt;P&gt;       i_delivery_date co ' 0' ).  "no delivery date sent&lt;/P&gt;&lt;P&gt;    if ( i_ship_date co ' 0123456789' and&lt;/P&gt;&lt;P&gt;         i_ship_date cn ' 0' ).    "ship date sent&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;move the ship date into a date field to add days&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ship_date = i_ship_date.&lt;/P&gt;&lt;P&gt;    elseif ( i_create_date co ' 0123456789' and&lt;/P&gt;&lt;P&gt;             i_create_date cn ' 0' ).&lt;/P&gt;&lt;P&gt;      ship_date = i_create_date.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    if not i_ship_code is initial.&lt;/P&gt;&lt;P&gt;      select single ship_days from zst7f_ty_vendors&lt;/P&gt;&lt;P&gt;               into ship_days&lt;/P&gt;&lt;P&gt;              where lifnr = vendor_no&lt;/P&gt;&lt;P&gt;                and ship_code = i_ship_code.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    if not ship_date is initial.&lt;/P&gt;&lt;P&gt;      if ship_days &amp;gt; 0.&lt;/P&gt;&lt;P&gt;        ship_date = ship_date + ship_days.&lt;/P&gt;&lt;P&gt;        o_delivery_date = ship_date.&lt;/P&gt;&lt;P&gt;        shift o_delivery_date left deleting leading ' '.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  else.  "delivery date sent&lt;/P&gt;&lt;P&gt;    o_delivery_date = i_delivery_date.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " convert_dates&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  quantity_conversion&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      The quantities in the input file are implied 3-decimal,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      so need to be converted into a "real" number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Also, the unit of measure may be 'KP' indicating that the qty&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      is given in thousands.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM quantity_conversion USING    value(i_UOM)&lt;/P&gt;&lt;P&gt;                                  value(i_invoice_qty)&lt;/P&gt;&lt;P&gt;                                  value(i_unit_price)&lt;/P&gt;&lt;P&gt;                    CHANGING o_uom like iE021-qty_UOM&lt;/P&gt;&lt;P&gt;                             o_invoice_qty like IE021-INVOICE_QTY&lt;/P&gt;&lt;P&gt;                             c_LINE_AMOUNT like izss7b21-line_amount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  f_invoice_qty type f.&lt;/P&gt;&lt;P&gt;data:  n_invoice_qty like lips-kcmeng.&lt;/P&gt;&lt;P&gt;data:  f_unit_price type f.&lt;/P&gt;&lt;P&gt;data:  f_line_amt type f.&lt;/P&gt;&lt;P&gt;data:  n_line_amt0 type p decimals 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if ( i_invoice_qty co ' 0123456789' and&lt;/P&gt;&lt;P&gt;       i_invoice_qty cn ' 0' ).&lt;/P&gt;&lt;P&gt;    f_invoice_qty = i_invoice_qty.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if no extended price is sent, calculate it&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if c_line_amount is initial.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the qty is implied 3-dec, the price is still implied&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;5-dec, and line amount should be implied 3-dec.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      f_unit_price = i_unit_price.&lt;/P&gt;&lt;P&gt;      f_line_amt = ( f_invoice_qty * f_unit_price ) / 100000.&lt;/P&gt;&lt;P&gt;      n_line_amt0 = f_line_amt.&lt;/P&gt;&lt;P&gt;      c_line_amount = n_line_amt0.&lt;/P&gt;&lt;P&gt;      shift c_line_amount left deleting leading space.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if the invoice qty is per 1000, the implied 3-dec times 1000 equals&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the unconverted value. Otherwise, divide by 1000 to get the PCE qty&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if i_uom = 'KP'.&lt;/P&gt;&lt;P&gt;      n_invoice_qty = f_invoice_qty.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      n_invoice_qty = f_invoice_qty / thou.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  o_uom = 'PCE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not n_invoice_qty is initial.&lt;/P&gt;&lt;P&gt;    o_invoice_qty = n_invoice_qty.&lt;/P&gt;&lt;P&gt;    shift o_invoice_qty left deleting leading space.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    clear o_invoice_qty.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " quantity_conversion&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  money_conversion&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Add the implied decimals and store price-per qty, if&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      price per 1,000 is sent.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM money_conversion USING    value(I_CURR)&lt;/P&gt;&lt;P&gt;                               value(i_UNIT_PRICE)&lt;/P&gt;&lt;P&gt;                               value(i_UOM)&lt;/P&gt;&lt;P&gt;                               value(i_LINE_AMOUNT)&lt;/P&gt;&lt;P&gt;                      CHANGING o_CURRENCY like ie021-currency&lt;/P&gt;&lt;P&gt;                               o_PRICE_UOM like ie021-price_uom&lt;/P&gt;&lt;P&gt;                               o_PRICE_QTY like ie021-price_qty&lt;/P&gt;&lt;P&gt;                               o_UNIT_PRICE like ie021-unit_price&lt;/P&gt;&lt;P&gt;                               o_LINE_AMOUNT like ie021-line_amount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  n_unit_price type p decimals 5,&lt;/P&gt;&lt;P&gt;       n_line_amount type p decimals 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;not all of the vendors send the currency code, so use the vendor&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;master default&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  case i_curr(2).&lt;/P&gt;&lt;P&gt;    when 'US'.&lt;/P&gt;&lt;P&gt;      o_currency = 'USD'.&lt;/P&gt;&lt;P&gt;    when 'JP'.&lt;/P&gt;&lt;P&gt;      o_currency = 'JPY'.&lt;/P&gt;&lt;P&gt;    when others.&lt;/P&gt;&lt;P&gt;      o_currency = uty_vendors-waers.&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;unit price is implied 5-dec&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if ( i_unit_price cn ' 0' and&lt;/P&gt;&lt;P&gt;       i_unit_price co ' 0123456789' ).&lt;/P&gt;&lt;P&gt;    n_unit_price = i_unit_price.&lt;/P&gt;&lt;P&gt;    n_unit_price = n_unit_price / hun_thou.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;line price is implied 3-dec&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if ( i_line_amount co ' 0123456789' and&lt;/P&gt;&lt;P&gt;       i_line_amount cn ' 0' ).&lt;/P&gt;&lt;P&gt;    n_line_amount = i_line_amount.&lt;/P&gt;&lt;P&gt;    n_line_amount = n_line_amount / thou.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;'KP' = price per thousand&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if i_uom = 'KP'.&lt;/P&gt;&lt;P&gt;    o_price_qty = '1000'.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    o_price_qty = '1'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  o_price_uom = 'PCE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not n_unit_price is initial.&lt;/P&gt;&lt;P&gt;    o_unit_price = n_unit_price.&lt;/P&gt;&lt;P&gt;    shift o_unit_price left deleting leading space.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    clear o_unit_price.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  if not n_line_amount is initial.&lt;/P&gt;&lt;P&gt;    o_line_amount = n_line_amount.&lt;/P&gt;&lt;P&gt;    shift o_line_amount left deleting leading space.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    clear o_line_amount.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " money_conversion&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  SAP_vendor_partno&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      replace UTY part number sent by vendor with SAP material no.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      from PO line item.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM SAP_vendor_partno changing cust_partno like ie021-cust_partno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables: makt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: partno_sent like makt-maktx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  partno_sent = cust_partno.&lt;/P&gt;&lt;P&gt;  clear: makt, cust_partno.&lt;/P&gt;&lt;P&gt;  select single matnr from ekpo into cust_partno&lt;/P&gt;&lt;P&gt;         where ebeln = ie021-po_number and&lt;/P&gt;&lt;P&gt;               ebelp = ie021-po_lineno.&lt;/P&gt;&lt;P&gt;  if sy-subrc is initial.&lt;/P&gt;&lt;P&gt;*compare material description to part number sent by vendor&lt;/P&gt;&lt;P&gt;    select single maktx from makt into makt-maktx&lt;/P&gt;&lt;P&gt;        where matnr = cust_partno.&lt;/P&gt;&lt;P&gt;    if partno_sent &amp;lt;&amp;gt; makt-maktx.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;'Part No. Mismatch: PO &amp;amp; - &amp;amp;, Part sent &amp;amp;, SAP mat.no. &amp;amp;'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      message i031 with ie021-po_number ie021-po_lineno&lt;/P&gt;&lt;P&gt;                        partno_sent makt-maktx.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  else.  "PO line not found&lt;/P&gt;&lt;P&gt;*try to find SAP material number using 20-char catalog no. sent&lt;/P&gt;&lt;P&gt;    select single matnr from makt into cust_partno&lt;/P&gt;&lt;P&gt;        where maktx = partno_sent.&lt;/P&gt;&lt;P&gt;    if not sy-subrc is initial.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;'SAP material no. not found for &amp;amp; - PO &amp;amp; - &amp;amp;'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      message i032 with partno_sent ie021-po_number ie021-po_lineno.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;*if not found, IDoc will go to workflow for missing material no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " SAP_vendor_partno&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  idoc_header_segs&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      create internal table entries for header segments.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DESADV:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         E1EDK07&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         E1EDKA1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         E1EDK03&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         E1EDK08&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         E1EDKA2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         E1EDK06&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; INVOIC:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         E1EDK01&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         E1EDKA1(s)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         E1EDK02&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         E1EDK03(s)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM idoc_header_segs using value(desadv_ok).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INVOIC&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear i_seg_num.&lt;/P&gt;&lt;P&gt;  invoicdata-segnam = 'E1EDK01'.&lt;/P&gt;&lt;P&gt;  e1edk01-action = ie021-stat.&lt;/P&gt;&lt;P&gt;  if ie021-currency(2) = 'US'.&lt;/P&gt;&lt;P&gt;    e1edk01-curcy = 'USD'.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    e1edk01-curcy = 'JPY'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  invoicdata-sdata = e1edk01.&lt;/P&gt;&lt;P&gt;  append_idoc_rec invoicdata i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear e1edka1.&lt;/P&gt;&lt;P&gt;  invoicdata-segnam = 'E1EDKA1'.&lt;/P&gt;&lt;P&gt;  e1edka1-parvw = 'RE'.&lt;/P&gt;&lt;P&gt;  e1edka1-partn = ie021-shipto_id.&lt;/P&gt;&lt;P&gt;  invoicdata-sdata = e1edka1.&lt;/P&gt;&lt;P&gt;  append_idoc_rec invoicdata i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear e1edka1.&lt;/P&gt;&lt;P&gt;  invoicdata-segnam = 'E1EDKA1'.&lt;/P&gt;&lt;P&gt;  e1edka1-parvw = 'LF'.&lt;/P&gt;&lt;P&gt;  e1edka1-partn = ie021-lifnr.&lt;/P&gt;&lt;P&gt;  e1edka1-lifnr = ie021-shipto_id.&lt;/P&gt;&lt;P&gt;  invoicdata-sdata = e1edka1.&lt;/P&gt;&lt;P&gt;  append_idoc_rec invoicdata i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not ie021-endcust_name is initial.&lt;/P&gt;&lt;P&gt;    clear e1edka1.&lt;/P&gt;&lt;P&gt;    invoicdata-segnam = 'E1EDKA1'.&lt;/P&gt;&lt;P&gt;    e1edka1-parvw = 'WE'.&lt;/P&gt;&lt;P&gt;    e1edka1-name1 = ie021-endcust_name.&lt;/P&gt;&lt;P&gt;    invoicdata-sdata = e1edka1.&lt;/P&gt;&lt;P&gt;    append_idoc_rec invoicdata i.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear e1edk02.&lt;/P&gt;&lt;P&gt;  invoicdata-segnam = 'E1EDK02'.&lt;/P&gt;&lt;P&gt;  e1edk02-qualf = '009'.&lt;/P&gt;&lt;P&gt;  e1edk02-belnr = ie021-invoice_no.&lt;/P&gt;&lt;P&gt;  invoicdata-sdata = e1edk02.&lt;/P&gt;&lt;P&gt;  append_idoc_rec invoicdata i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear e1edk03.&lt;/P&gt;&lt;P&gt;  invoicdata-segnam = 'E1EDK03'.&lt;/P&gt;&lt;P&gt;  e1edk03-iddat = '012'.&lt;/P&gt;&lt;P&gt;  e1edk03-datum = ie021-create_date.&lt;/P&gt;&lt;P&gt;  invoicdata-sdata = e1edk03.&lt;/P&gt;&lt;P&gt;  append_idoc_rec invoicdata i.&lt;/P&gt;&lt;P&gt;  invoicdata-segnam = 'E1EDK03'.&lt;/P&gt;&lt;P&gt;  e1edk03-iddat = '024'.&lt;/P&gt;&lt;P&gt;  invoicdata-sdata = e1edk03.&lt;/P&gt;&lt;P&gt;  append_idoc_rec invoicdata i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  check desadv_ok = '000'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DESADV&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear d_seg_num.&lt;/P&gt;&lt;P&gt;  desadvdata-segnam = 'E1EDK07'.&lt;/P&gt;&lt;P&gt;  e1edk07-action = ie021-stat.&lt;/P&gt;&lt;P&gt;  e1edk07-bolnr = ie021-invoice_no.&lt;/P&gt;&lt;P&gt;  desadvdata-sdata = e1edk07.&lt;/P&gt;&lt;P&gt;  append_idoc_rec desadvdata d.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear e1edka1.&lt;/P&gt;&lt;P&gt;  desadvdata-segnam = 'E1EDKA1'.&lt;/P&gt;&lt;P&gt;  desadvdata-sdata = e1edka1.&lt;/P&gt;&lt;P&gt;  append_idoc_rec desadvdata d.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear e1edk03.&lt;/P&gt;&lt;P&gt;  desadvdata-segnam = 'E1EDK03'.&lt;/P&gt;&lt;P&gt;  desadvdata-sdata = e1edk03.&lt;/P&gt;&lt;P&gt;  append_idoc_rec desadvdata d.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear e1edk08.&lt;/P&gt;&lt;P&gt;  desadvdata-segnam = 'E1EDK08'.&lt;/P&gt;&lt;P&gt;  e1edk08-vbeln = ie021-invoice_no.&lt;/P&gt;&lt;P&gt;  e1edk08-traid = ie021-ship_id.&lt;/P&gt;&lt;P&gt;  e1edk08-traty = ie021-ship_method.&lt;/P&gt;&lt;P&gt;  desadvdata-sdata = e1edk08.&lt;/P&gt;&lt;P&gt;  append_idoc_rec desadvdata d.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear e1edka2.&lt;/P&gt;&lt;P&gt;  desadvdata-segnam = 'E1EDKA2'.&lt;/P&gt;&lt;P&gt;  desadvdata-sdata = e1edka2.&lt;/P&gt;&lt;P&gt;  append_idoc_rec desadvdata d.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear e1edk06.&lt;/P&gt;&lt;P&gt;  desadvdata-segnam = 'E1EDK06'.&lt;/P&gt;&lt;P&gt;  e1edk06-iddat = '025'.  "document date&lt;/P&gt;&lt;P&gt;  e1edk06-datum = ie021-create_date.&lt;/P&gt;&lt;P&gt;  desadvdata-sdata = e1edk06.&lt;/P&gt;&lt;P&gt;  append_idoc_rec desadvdata d.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not ie021-eta is initial.&lt;/P&gt;&lt;P&gt;    clear e1edk06.&lt;/P&gt;&lt;P&gt;    desadvdata-segnam = 'E1EDK06'.&lt;/P&gt;&lt;P&gt;    e1edk06-iddat = '001'.  "delivery date&lt;/P&gt;&lt;P&gt;    e1edk06-datum = ie021-eta.&lt;/P&gt;&lt;P&gt;    desadvdata-sdata = e1edk06.&lt;/P&gt;&lt;P&gt;    append_idoc_rec desadvdata d.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not ie021-etd is initial.&lt;/P&gt;&lt;P&gt;    clear e1edk06.&lt;/P&gt;&lt;P&gt;    desadvdata-segnam = 'E1EDK06'.&lt;/P&gt;&lt;P&gt;    e1edk06-iddat = '010'.  "ship date&lt;/P&gt;&lt;P&gt;    e1edk06-datum = ie021-etd.&lt;/P&gt;&lt;P&gt;    desadvdata-sdata = e1edk06.&lt;/P&gt;&lt;P&gt;    append_idoc_rec desadvdata d.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " idoc_header_segs&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  idoc_poheader_segs&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      create internal table entries for DESADV PO/item segments&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         E1EDP07&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM idoc_poheader_segs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*DESADV&lt;/P&gt;&lt;P&gt;  clear e1edp07.&lt;/P&gt;&lt;P&gt;  desadvdata-segnam = 'E1EDP07'.&lt;/P&gt;&lt;P&gt;  e1edp07-bstnk = ie021-po_number.&lt;/P&gt;&lt;P&gt;  e1edp07-posex = ie021-po_lineno.&lt;/P&gt;&lt;P&gt;  desadvdata-sdata = e1edp07.&lt;/P&gt;&lt;P&gt;  append_idoc_rec desadvdata d.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p07_ctr = p07_ctr + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " idoc_poheader_segs&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  idoc_item_segs&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      create internal table entries for PO item segments:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         DESADV:   E1EDP09&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         INVOIC:   E1EDP01        Qtys&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                   E1EDP02        ref nos. (PO number / line)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                   E1EDP19        part numbers&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                   E1EDP26        amounts&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                   E1EDP04        taxes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM idoc_item_segs using value(desadv_ok).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  n_line_amt  type p decimals 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*INVOIC&lt;/P&gt;&lt;P&gt;  clear e1edp01.&lt;/P&gt;&lt;P&gt;  invoicdata-segnam = 'E1EDP01'.&lt;/P&gt;&lt;P&gt;  e1edp01-menee = ie021-qty_uom.&lt;/P&gt;&lt;P&gt;  e1edp01-menge = ie021-invoice_qty.&lt;/P&gt;&lt;P&gt;  e1edp01-vprei = ie021-unit_price.&lt;/P&gt;&lt;P&gt;  e1edp01-pmene = ie021-price_uom.&lt;/P&gt;&lt;P&gt;  e1edp01-peinh = ie021-price_qty.&lt;/P&gt;&lt;P&gt;  e1edp01-netwr = ie021-line_amount.&lt;/P&gt;&lt;P&gt;  invoicdata-sdata = e1edp01.&lt;/P&gt;&lt;P&gt;  append_idoc_rec invoicdata i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear e1edp02.&lt;/P&gt;&lt;P&gt;  invoicdata-segnam = 'E1EDP02'.&lt;/P&gt;&lt;P&gt;  e1edp02-qualf = '001'.&lt;/P&gt;&lt;P&gt;  e1edp02-belnr = ie021-po_number.&lt;/P&gt;&lt;P&gt;  e1edp02-zeile = ie021-po_lineno.&lt;/P&gt;&lt;P&gt;  invoicdata-sdata = e1edp02.&lt;/P&gt;&lt;P&gt;  append_idoc_rec invoicdata i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear e1edp19.&lt;/P&gt;&lt;P&gt;  invoicdata-segnam = 'E1EDP19'.&lt;/P&gt;&lt;P&gt;  e1edp19-qualf = '001'.&lt;/P&gt;&lt;P&gt;  e1edp19-idtnr = ie021-cust_partno.&lt;/P&gt;&lt;P&gt;  invoicdata-sdata = e1edp19.&lt;/P&gt;&lt;P&gt;  append_idoc_rec invoicdata i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear e1edp19.&lt;/P&gt;&lt;P&gt;  invoicdata-segnam = 'E1EDP19'.&lt;/P&gt;&lt;P&gt;  e1edp19-qualf = '002'.&lt;/P&gt;&lt;P&gt;  e1edp19-idtnr = ie021-vendor_partno.&lt;/P&gt;&lt;P&gt;  invoicdata-sdata = e1edp19.&lt;/P&gt;&lt;P&gt;  append_idoc_rec invoicdata i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear e1edp26.&lt;/P&gt;&lt;P&gt;  invoicdata-segnam = 'E1EDP26'.&lt;/P&gt;&lt;P&gt;  e1edp26-qualf = '003'.&lt;/P&gt;&lt;P&gt;  e1edp26-betrg = ie021-line_amount.&lt;/P&gt;&lt;P&gt;  invoicdata-sdata = e1edp26.&lt;/P&gt;&lt;P&gt;  append_idoc_rec invoicdata i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;dummy tax seg&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear e1edp04.&lt;/P&gt;&lt;P&gt;  invoicdata-segnam = 'E1EDP04'.&lt;/P&gt;&lt;P&gt;  e1edp04-msatz = '0.00'.&lt;/P&gt;&lt;P&gt;  invoicdata-sdata = e1edp04.&lt;/P&gt;&lt;P&gt;  append_idoc_rec invoicdata i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  n_line_amt = ie021-line_amount.&lt;/P&gt;&lt;P&gt;  invoice_total = invoice_total + n_line_amt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  check desadv_ok = '000'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*DESADV&lt;/P&gt;&lt;P&gt;  clear e1edp09.&lt;/P&gt;&lt;P&gt;  desadvdata-segnam = 'E1EDP09'.&lt;/P&gt;&lt;P&gt;  e1edp09-vbeln = ie021-slip_number.&lt;/P&gt;&lt;P&gt;  e1edp09-matnr = ie021-vendor_partno.&lt;/P&gt;&lt;P&gt;  e1edp09-vrkme = ie021-qty_uom.&lt;/P&gt;&lt;P&gt;  e1edp09-lfimg = ie021-invoice_qty.&lt;/P&gt;&lt;P&gt;  desadvdata-sdata = e1edp09.&lt;/P&gt;&lt;P&gt;  append_idoc_rec desadvdata d.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " idoc_item_segs&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;P&gt;*&amp;amp;    Form  post_idocs&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    create database IDocs from the idocdata tables and clear tables.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM post_idocs using value(desadv_ok).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*INVOIC&lt;/P&gt;&lt;P&gt;  clear e1eds01.&lt;/P&gt;&lt;P&gt;  invoicdata-segnam = 'E1EDS01'.&lt;/P&gt;&lt;P&gt;  e1eds01-sumid = '010'.&lt;/P&gt;&lt;P&gt;  e1eds01-summe = invoice_total.&lt;/P&gt;&lt;P&gt;  e1eds01-waerq = ie021-currency.&lt;/P&gt;&lt;P&gt;  shift e1eds01-summe left deleting leading space.&lt;/P&gt;&lt;P&gt;  invoicdata-sdata = e1eds01.&lt;/P&gt;&lt;P&gt;  append_idoc_rec invoicdata i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'INBOUND_IDOC_PROCESS'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      IDOC_CONTROL       =  iedidc&lt;/P&gt;&lt;P&gt;      IDOC_DATA          =  invoicdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  commit work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*DESADV&lt;/P&gt;&lt;P&gt;  if desadv_ok = '000'.&lt;/P&gt;&lt;P&gt;    clear e1eds02.&lt;/P&gt;&lt;P&gt;    desadvdata-segnam = 'E1EDS02'.&lt;/P&gt;&lt;P&gt;    e1eds02-sumid = '001'.&lt;/P&gt;&lt;P&gt;    e1eds02-summe = p07_ctr.&lt;/P&gt;&lt;P&gt;    shift e1eds02-summe left deleting leading space.&lt;/P&gt;&lt;P&gt;    desadvdata-sdata = e1eds02.&lt;/P&gt;&lt;P&gt;    append_idoc_rec desadvdata d.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'INBOUND_IDOC_PROCESS'&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        IDOC_CONTROL       =  dedidc&lt;/P&gt;&lt;P&gt;        IDOC_DATA          =  desadvdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    commit work.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  refresh: desadvdata,&lt;/P&gt;&lt;P&gt;           invoicdata.&lt;/P&gt;&lt;P&gt;  clear:&lt;/P&gt;&lt;P&gt;    desadvdata,&lt;/P&gt;&lt;P&gt;    invoicdata,&lt;/P&gt;&lt;P&gt;    p07_ctr,&lt;/P&gt;&lt;P&gt;    invoice_total,&lt;/P&gt;&lt;P&gt;    save_stat,&lt;/P&gt;&lt;P&gt;    save_po,&lt;/P&gt;&lt;P&gt;    save_line,&lt;/P&gt;&lt;P&gt;    save_invoice.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " post_idocs&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  init_desadv&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      add a DESDAV control record and initialize fields&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM init_desadv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear dedidc. refresh dedidc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;initialize control record:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;move:  '2'        to  dedidc-direct,&lt;/P&gt;&lt;P&gt;      'DESADV01'  to  dedidc-doctyp,&lt;/P&gt;&lt;P&gt;      'DESADV'    to  dedidc-mestyp,&lt;/P&gt;&lt;P&gt;      'F'         to  dedidc-std,&lt;/P&gt;&lt;P&gt;      'E021'      to  dedidc-stdmes,&lt;/P&gt;&lt;P&gt;      'LS'        to  dedidc-sndprt,&lt;/P&gt;&lt;P&gt;      'TY_VENDORS' to dedidc-sndprn,&lt;/P&gt;&lt;P&gt;      sy-datlo    to  dedidc-credat,&lt;/P&gt;&lt;P&gt;      sy-timlo    to  dedidc-cretim.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;append dedidc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.              " init_desadv&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  init_invoic&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      add a INVOIC control record and initialize fields&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM init_invoic.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear iedidc. refresh iedidc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;initialize control record:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;move:  '2'        to  iedidc-direct,&lt;/P&gt;&lt;P&gt;      'INVOIC01'  to  iedidc-doctyp,&lt;/P&gt;&lt;P&gt;      'INVOIC'    to  iedidc-mestyp,&lt;/P&gt;&lt;P&gt;      'MM'        to  iedidc-mescod,&lt;/P&gt;&lt;P&gt;      'F'         to  iedidc-std,&lt;/P&gt;&lt;P&gt;      'E021'      to  iedidc-stdmes,&lt;/P&gt;&lt;P&gt;      'LS'        to  iedidc-sndprt,&lt;/P&gt;&lt;P&gt;      'TY_VENDORS' to iedidc-sndprn,&lt;/P&gt;&lt;P&gt;      sy-datlo    to  iedidc-credat,&lt;/P&gt;&lt;P&gt;      sy-timlo    to  iedidc-cretim.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;append iedidc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.              " init_invoic&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Outbound:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points please...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Nov 2007 08:24:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/extended-segment/m-p/3029028#M716318</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-12T08:24:02Z</dc:date>
    </item>
  </channel>
</rss>

