<?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 IDOC'S INBOUND CODE in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/idoc-s-inbound-code/m-p/4213158#M1006782</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi friend,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;my requriement  data is coming from   mainframe system and i want to up this data in SAP  system pls i want to simple  code &lt;/P&gt;&lt;P&gt;for  idoc's inbound ASAP  .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;THANK AND REGRADS&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 25 Jul 2008 11:37:20 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-07-25T11:37:20Z</dc:date>
    <item>
      <title>IDOC'S INBOUND CODE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/idoc-s-inbound-code/m-p/4213158#M1006782</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi friend,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;my requriement  data is coming from   mainframe system and i want to up this data in SAP  system pls i want to simple  code &lt;/P&gt;&lt;P&gt;for  idoc's inbound ASAP  .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;THANK AND REGRADS&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Jul 2008 11:37:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/idoc-s-inbound-code/m-p/4213158#M1006782</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-25T11:37:20Z</dc:date>
    </item>
    <item>
      <title>Re: IDOC'S INBOUND CODE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/idoc-s-inbound-code/m-p/4213159#M1006783</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Refer this:&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.sdn.sap.com/click.jspa?searchID=14498361&amp;amp;messageID=5858697" target="test_blank"&gt;https://forums.sdn.sap.com/click.jspa?searchID=14498361&amp;amp;messageID=5858697&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Shiva Kumar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Jul 2008 11:42:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/idoc-s-inbound-code/m-p/4213159#M1006783</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-25T11:42:52Z</dc:date>
    </item>
    <item>
      <title>Re: IDOC'S INBOUND CODE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/idoc-s-inbound-code/m-p/4213160#M1006784</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check the link I hope it is helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_40b/helpdata/es/dc/6b7df143d711d1893e0000e8323c4f/content.htm" target="test_blank"&gt;http://help.sap.com/saphelp_40b/helpdata/es/dc/6b7df143d711d1893e0000e8323c4f/content.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Pavan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Jul 2008 12:12:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/idoc-s-inbound-code/m-p/4213160#M1006784</guid>
      <dc:creator>bpawanchand</dc:creator>
      <dc:date>2008-07-25T12:12:06Z</dc:date>
    </item>
    <item>
      <title>Re: IDOC'S INBOUND CODE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/idoc-s-inbound-code/m-p/4213161#M1006785</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;there is no standard code for the inbound idoc..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do like this..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1 go to we81    create message&lt;/P&gt;&lt;P&gt;2 go to we81   attach this to the idoc type&lt;/P&gt;&lt;P&gt;3 go to we20    create the port &lt;/P&gt;&lt;P&gt;4 go to we21    create partner&lt;/P&gt;&lt;P&gt;5 go to se37    create a z funtion module write the coding&lt;/P&gt;&lt;P&gt;6 go to  we41   create the process code for inbound and assign the fm to the process code&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 26 Jul 2008 11:14:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/idoc-s-inbound-code/m-p/4213161#M1006785</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-26T11:14:05Z</dc:date>
    </item>
    <item>
      <title>Re: IDOC'S INBOUND CODE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/idoc-s-inbound-code/m-p/4213162#M1006786</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;report zfi_ciminv no standard page heading message-id zs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:&lt;/P&gt;&lt;P&gt;  w_h2_ctr(4)                  type c,&lt;/P&gt;&lt;P&gt;  file                         type string,&lt;/P&gt;&lt;P&gt;  tx_write,&lt;/P&gt;&lt;P&gt;  prtbuf(140),                 " new&lt;/P&gt;&lt;P&gt;  line1                        like sy-tabix, "new&lt;/P&gt;&lt;P&gt;  line2                        like sy-tabix, "new&lt;/P&gt;&lt;P&gt;  line_sel                     like sy-tabix, "new&lt;/P&gt;&lt;P&gt;  line_num                     like sy-tabix, "new&lt;/P&gt;&lt;P&gt;  line_last                    like sy-lilli, "new&lt;/P&gt;&lt;P&gt;  line_current                 like sy-lilli, "new&lt;/P&gt;&lt;P&gt;  delimiter                    type x value '0A'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen skip 1.&lt;/P&gt;&lt;P&gt;selection-screen begin of block a with frame title text-001.&lt;/P&gt;&lt;P&gt;parameters:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Input File name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; p_inpt like rlgrap-filename default 'C:\ciminv\CP072006AR.txt',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;File name for output&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; p_flnm like rlgrap-filename default 'C:\ciminv\CP072006AR_out.txt'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Print input file (List of invalid data if any)&lt;/P&gt;&lt;P&gt;selection-screen skip 1.&lt;/P&gt;&lt;P&gt;selection-screen begin of line.&lt;/P&gt;&lt;P&gt;parameters: p_prt radiobutton group r1.&lt;/P&gt;&lt;P&gt;selection-screen comment (66) text-008.&lt;/P&gt;&lt;P&gt;selection-screen end of line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Input file from NT server&lt;/P&gt;&lt;P&gt;selection-screen skip 1.&lt;/P&gt;&lt;P&gt;selection-screen begin of line.&lt;/P&gt;&lt;P&gt;parameters: p_inbd radiobutton group r1.&lt;/P&gt;&lt;P&gt;selection-screen comment (33) text-004.&lt;/P&gt;&lt;P&gt;selection-screen end of line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Create Idocs&lt;/P&gt;&lt;P&gt;selection-screen skip 1.&lt;/P&gt;&lt;P&gt;selection-screen begin of line.&lt;/P&gt;&lt;P&gt;parameters: p_proc radiobutton group r1.&lt;/P&gt;&lt;P&gt;selection-screen comment (21) text-006.&lt;/P&gt;&lt;P&gt;selection-screen end of line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen end of block a.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:&lt;/P&gt;&lt;P&gt; head1              like sy-title,&lt;/P&gt;&lt;P&gt; ctr_input_recs(5)  type p,&lt;/P&gt;&lt;P&gt; ctr_output_recs(5) type p,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table containing NT File server file contents&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; begin of tab_input occurs 0,&lt;/P&gt;&lt;P&gt;   line type string,&lt;/P&gt;&lt;P&gt; end of tab_input,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;dsn table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; begin of dsn_input occurs 0,&lt;/P&gt;&lt;P&gt;     line(101),&lt;/P&gt;&lt;P&gt; end of dsn_input,&lt;/P&gt;&lt;P&gt; begin of new_input occurs 0,&lt;/P&gt;&lt;P&gt;     line(101),&lt;/P&gt;&lt;P&gt; end of new_input,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; begin of header,&lt;/P&gt;&lt;P&gt; item_type(1)     type c, "Item Type     H&lt;/P&gt;&lt;P&gt; doc_date(8)      type c, "Document Date ccyymmdd&lt;/P&gt;&lt;P&gt; post_date(8)     type c, "Posting date  ccyymmdd&lt;/P&gt;&lt;P&gt; comp_code(4)     type c, "Company Code&lt;/P&gt;&lt;P&gt; reference(16)    type c, "Reference&lt;/P&gt;&lt;P&gt; aar_ind(1)       type c, "AAR Indicator&lt;/P&gt;&lt;P&gt; dt_cr(2)         type c, "Debit Credit Indicator&lt;/P&gt;&lt;P&gt; end of header,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; begin of cust,&lt;/P&gt;&lt;P&gt; item_type(1)     type c, "Item Type     C&lt;/P&gt;&lt;P&gt; no(10)           type c, "Customer number&lt;/P&gt;&lt;P&gt; amount(25)       type c, "Amount&lt;/P&gt;&lt;P&gt; curr(1)          type c, "Currency&lt;/P&gt;&lt;P&gt; billing_ym(6)    type c, "Item text&lt;/P&gt;&lt;P&gt; provstate(2)     type c, "Account Key&lt;/P&gt;&lt;P&gt; end of cust,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;begin of gdetail,&lt;/P&gt;&lt;P&gt; item_type(1)     type c, "Item Type     G&lt;/P&gt;&lt;P&gt; amount(25)       type c, "Amount&lt;/P&gt;&lt;P&gt; provstate(2)     type c, "Account Key&lt;/P&gt;&lt;P&gt; taxcode(2)       type c, "Tax Code&lt;/P&gt;&lt;P&gt; itemtext(20)     type c, "Item Text&lt;/P&gt;&lt;P&gt; tax_type(1)      type c, "Item Type     T&lt;/P&gt;&lt;P&gt; gst_amount(25)   type c, "Amount&lt;/P&gt;&lt;P&gt; qst_amount(25)   type c, "Amount&lt;/P&gt;&lt;P&gt; end of gdetail.&lt;/P&gt;&lt;P&gt;*******************************new&lt;/P&gt;&lt;P&gt;at user-command.&lt;/P&gt;&lt;P&gt;  clear line2.&lt;/P&gt;&lt;P&gt;  if sy-ucomm = 'MODIFYFILE'.&lt;/P&gt;&lt;P&gt;    if line_sel LT 20.&lt;/P&gt;&lt;P&gt;      message i319(01) with 'Select a ''Type'' line to delete'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     exit.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    line1 = line_sel + 1.&lt;/P&gt;&lt;P&gt;    loop at new_input.&lt;/P&gt;&lt;P&gt;      line2 = sy-tabix - 1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     exit.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    sy-lsind = 0.              " keep lists 1 level deep&lt;/P&gt;&lt;P&gt;    set user-command 'SCROLL'.  " otherwise scroll doesn't work&lt;/P&gt;&lt;P&gt;  elseif sy-ucomm = 'SCROLL'.&lt;/P&gt;&lt;P&gt;    scroll list to page 1 line line_current.&lt;/P&gt;&lt;P&gt;  elseif sy-ucomm = 'SAVEFILE'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   perform save_file --&amp;gt; download&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;at line-selection.&lt;/P&gt;&lt;P&gt;    line_sel = line_num.&lt;/P&gt;&lt;P&gt;    line_current = sy-lilli.&lt;/P&gt;&lt;P&gt;    if line_last &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      read line line_last.&lt;/P&gt;&lt;P&gt;      modify line line_last line format color 1 intensified off.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    line_last = line_current.&lt;/P&gt;&lt;P&gt;    read line line_current.&lt;/P&gt;&lt;P&gt;    modify line line_current&lt;/P&gt;&lt;P&gt;                     line format color 6 inverse on intensified on.&lt;/P&gt;&lt;P&gt;    format reset.&lt;/P&gt;&lt;P&gt;*******************************end new&lt;/P&gt;&lt;P&gt;at selection-screen on value-request for p_inpt.&lt;/P&gt;&lt;P&gt;  perform f4_input_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;at selection-screen on value-request for p_flnm.&lt;/P&gt;&lt;P&gt;  perform f4_input_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;at selection-screen.&lt;/P&gt;&lt;P&gt;  if p_inpt is initial.&lt;/P&gt;&lt;P&gt;    message e020.&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;Output File Name is required when outputting&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if p_flnm is initial and p_inbd = 'X'.&lt;/P&gt;&lt;P&gt;    message e022.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&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;  set pf-status  'MAIN'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; if p_inbd = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Read file from NT server into a table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    file = p_inpt.&lt;/P&gt;&lt;P&gt;    call function 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;         exporting&lt;/P&gt;&lt;P&gt;              filename                = file&lt;/P&gt;&lt;P&gt;              filetype                = 'ASC'&lt;/P&gt;&lt;P&gt;         tables&lt;/P&gt;&lt;P&gt;              data_tab                = tab_input&lt;/P&gt;&lt;P&gt;         exceptions&lt;/P&gt;&lt;P&gt;              file_open_error         = 1&lt;/P&gt;&lt;P&gt;              file_read_error         = 2&lt;/P&gt;&lt;P&gt;              no_batch                = 3&lt;/P&gt;&lt;P&gt;              gui_refuse_filetransfer = 4&lt;/P&gt;&lt;P&gt;              invalid_type            = 5&lt;/P&gt;&lt;P&gt;              no_authority            = 6&lt;/P&gt;&lt;P&gt;              unknown_error           = 7&lt;/P&gt;&lt;P&gt;              bad_data_format         = 8&lt;/P&gt;&lt;P&gt;              header_not_allowed      = 9&lt;/P&gt;&lt;P&gt;              separator_not_allowed   = 10&lt;/P&gt;&lt;P&gt;              header_too_long         = 11&lt;/P&gt;&lt;P&gt;              unknown_dp_error        = 12&lt;/P&gt;&lt;P&gt;              access_denied           = 13&lt;/P&gt;&lt;P&gt;              dp_out_of_memory        = 14&lt;/P&gt;&lt;P&gt;              disk_full               = 15&lt;/P&gt;&lt;P&gt;              dp_timeout              = 16&lt;/P&gt;&lt;P&gt;              others                  = 17.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;      write: / '**** Error uploading file', p_inpt,&lt;/P&gt;&lt;P&gt;             / 'Return code:', sy-subrc.&lt;/P&gt;&lt;P&gt;      skip 2.&lt;/P&gt;&lt;P&gt;      stop. " input&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;Split the Header(H),Customer(C),Detail(G) and Tax(T) records in such&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;order that it is a workable file.(split at New Line character).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    loop at tab_input.&lt;/P&gt;&lt;P&gt;      split tab_input-line at delimiter into table dsn_input.&lt;/P&gt;&lt;P&gt;      append lines of dsn_input to new_input.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear w_h2_ctr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Loop through the input file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    loop at new_input.&lt;/P&gt;&lt;P&gt;      if new_input-line(2) = 'H2'.&lt;/P&gt;&lt;P&gt;        add +1 to w_h2_ctr.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if new_input-line eq space.&lt;/P&gt;&lt;P&gt;        exit.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      add 1 to ctr_input_recs.&lt;/P&gt;&lt;P&gt;      if p_prt = 'X'.&lt;/P&gt;&lt;P&gt;        format intensified off.&lt;/P&gt;&lt;P&gt;        write : / new_input.&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;     if p_flnm = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        add 1 to ctr_output_recs.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**********new&lt;/P&gt;&lt;P&gt;      prtbuf = new_input-line.&lt;/P&gt;&lt;P&gt;      write: 1 prtbuf, / ' '.&lt;/P&gt;&lt;P&gt;**********end new&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform proc_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Save File&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if not p_flnm is initial and p_inbd = 'X'.&lt;/P&gt;&lt;P&gt;    file = p_flnm.&lt;/P&gt;&lt;P&gt;    call function 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;         exporting&lt;/P&gt;&lt;P&gt;              filename         = file&lt;/P&gt;&lt;P&gt;         tables&lt;/P&gt;&lt;P&gt;              data_tab         = new_input&lt;/P&gt;&lt;P&gt;         exceptions&lt;/P&gt;&lt;P&gt;              file_write_error = 1.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Audit Trail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  format intensified off.&lt;/P&gt;&lt;P&gt;  skip 2.&lt;/P&gt;&lt;P&gt;  write :&lt;/P&gt;&lt;P&gt;   / 'No. of records read   : ', ctr_input_recs,&lt;/P&gt;&lt;P&gt;   / 'No. of records written: ', ctr_output_recs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Print page headings&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;top-of-page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Call function module to centre headings according to page width&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  head1 = 'Direct Feed Upload'.&lt;/P&gt;&lt;P&gt;  call function 'Z_BC_PRINT_HEADINGS'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            head1     = head1&lt;/P&gt;&lt;P&gt;            head2     = sy-title&lt;/P&gt;&lt;P&gt;            show_info = 'X'.&lt;/P&gt;&lt;P&gt;  skip 2.&lt;/P&gt;&lt;P&gt;  format intensified on.&lt;/P&gt;&lt;P&gt;  write: / 'Read file from NT File Server :'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; if p_inbd = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   write : 'Yes'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    format intensified off.&lt;/P&gt;&lt;P&gt;    write: /5 'Input File       : ', p_inpt+0(50).&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; else.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   write : 'No'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  format intensified on.&lt;/P&gt;&lt;P&gt;  skip 1.&lt;/P&gt;&lt;P&gt;  write: / 'Write to Server               :'.&lt;/P&gt;&lt;P&gt;  if p_inbd = 'X'.&lt;/P&gt;&lt;P&gt;    write : 'Yes'.&lt;/P&gt;&lt;P&gt;    format intensified off.&lt;/P&gt;&lt;P&gt;    write: /5 'Output File      : ',  p_flnm+0(50).&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    write : 'No'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  format intensified on.&lt;/P&gt;&lt;P&gt;  skip 1.&lt;/P&gt;&lt;P&gt;  write: / 'Create IDocs                  :'.&lt;/P&gt;&lt;P&gt;  if p_proc = 'X'.&lt;/P&gt;&lt;P&gt;    write : 'Yes'.&lt;/P&gt;&lt;P&gt;    format intensified off.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    write : 'No'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  skip.&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  F4_INPUT_FILE&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;form f4_input_file.&lt;/P&gt;&lt;P&gt;  call function 'F4_FILENAME'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            field_name = ' '&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;            file_name  = p_inpt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " F4_INPUT_FILE&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  proc_data&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;      text&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 proc_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: begin of wa_knb1 occurs 1.&lt;/P&gt;&lt;P&gt;          include structure knb1.&lt;/P&gt;&lt;P&gt;  data end of wa_knb1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: begin of wa_a053 occurs 0.&lt;/P&gt;&lt;P&gt;          include structure a053.&lt;/P&gt;&lt;P&gt;  data end of wa_a053.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IDOC Control Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  data: begin of zedidc40 occurs 0.&lt;/P&gt;&lt;P&gt;          include structure edi_dc40.&lt;/P&gt;&lt;P&gt;  data end of zedidc40.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IDOC Data Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  data: begin of zedidd40 occurs 0.&lt;/P&gt;&lt;P&gt;          include structure edi_dd40.&lt;/P&gt;&lt;P&gt;  data end of zedidd40.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: ze1bpache01 like e1bpache01,&lt;/P&gt;&lt;P&gt;        ze1bpacar01 like e1bpacar01,&lt;/P&gt;&lt;P&gt;        ze1bpacgl01 like e1bpacgl01,&lt;/P&gt;&lt;P&gt;        ze1bpaccr01 like e1bpaccr01,&lt;/P&gt;&lt;P&gt;        ze1bpactx01 like e1bpactx01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: wdocnum(16) type n value 0.&lt;/P&gt;&lt;P&gt;  data: wsegnum(6)  type n value 0.&lt;/P&gt;&lt;P&gt;  data: witemno(10) type n value 0.&lt;/P&gt;&lt;P&gt;  data: witemno_new(10)  type n value 0.&lt;/P&gt;&lt;P&gt;  data: witemno_gst(10)  type n value 0.&lt;/P&gt;&lt;P&gt;  data: witemno_qst(10)  type n value 0.&lt;/P&gt;&lt;P&gt;  data: mm_name(10).&lt;/P&gt;&lt;P&gt;  data: wa_land1(3).&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="---------------------" /&gt;HEADER--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------" /&gt;&lt;P&gt;  loop at new_input.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;header/control record&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if new_input-line(1) = 'H'.&lt;/P&gt;&lt;P&gt;      clear zedidc40.&lt;/P&gt;&lt;P&gt;      header = new_input-line.&lt;/P&gt;&lt;P&gt;      wdocnum = wdocnum + 1.&lt;/P&gt;&lt;P&gt;      zedidc40-tabnam  = 'EDI_DC40'.&lt;/P&gt;&lt;P&gt;      zedidc40-docnum    = wdocnum.&lt;/P&gt;&lt;P&gt;      zedidc40-direct    = '2'.&lt;/P&gt;&lt;P&gt;      concatenate 'SAP' sy-sysid into zedidc40-rcvpor.&lt;/P&gt;&lt;P&gt;      zedidc40-rcvprt    = 'LS'.&lt;/P&gt;&lt;P&gt;      zedidc40-rcvprn    = 'CIM'.&lt;/P&gt;&lt;P&gt;      zedidc40-sndpor    = ' '.&lt;/P&gt;&lt;P&gt;      zedidc40-sndprt    = 'LS'.&lt;/P&gt;&lt;P&gt;      zedidc40-sndprn    = 'CIM'.&lt;/P&gt;&lt;P&gt;      zedidc40-credat    = sy-datum.&lt;/P&gt;&lt;P&gt;      zedidc40-cretim    = sy-uzeit.&lt;/P&gt;&lt;P&gt;      zedidc40-mestyp    = 'ACC_BILLING'.&lt;/P&gt;&lt;P&gt;      zedidc40-idoctyp   = 'ACC_BILLING02'.&lt;/P&gt;&lt;P&gt;      append zedidc40.  " Control record&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;*E1BPACHE01&lt;/P&gt;&lt;P&gt;      clear ze1bpache01.&lt;/P&gt;&lt;P&gt;      clear zedidd40.&lt;/P&gt;&lt;P&gt;      ze1bpache01-obj_type     = 'ZVBRK'.&lt;/P&gt;&lt;P&gt;      shift header-reference   left deleting leading ' '.&lt;/P&gt;&lt;P&gt;      ze1bpache01-obj_key      = header-reference.&lt;/P&gt;&lt;P&gt;      ze1bpache01-obj_sys      = 'CIM'.&lt;/P&gt;&lt;P&gt;      ze1bpache01-username     = sy-uname.  " 'PROD_MERC'.&lt;/P&gt;&lt;P&gt;      if header-aar_ind = 'Y'.&lt;/P&gt;&lt;P&gt;        ze1bpache01-header_txt = 'AAR RULE 23'.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        ze1bpache01-header_txt = 'AAR NON RULE 23'.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      ze1bpache01-comp_code    = header-comp_code.&lt;/P&gt;&lt;P&gt;      ze1bpache01-doc_date     = header-doc_date.&lt;/P&gt;&lt;P&gt;      ze1bpache01-pstng_date   = header-post_date.&lt;/P&gt;&lt;P&gt;      concatenate header-post_date(6) '07' into ze1bpache01-trans_date.&lt;/P&gt;&lt;P&gt;      if header-dt_cr = 'DR'.             " Customer Invoice&lt;/P&gt;&lt;P&gt;        ze1bpache01-doc_type     = header-dt_cr.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        ze1bpache01-doc_type     = 'DG'.  " Customer Credit Memo&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      ze1bpache01-ref_doc_no   = header-reference.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      zedidd40-docnum          = wdocnum.&lt;/P&gt;&lt;P&gt;      zedidd40-segnum          = '000001'.&lt;/P&gt;&lt;P&gt;      zedidd40-segnam          = 'E1BPACHE01'.&lt;/P&gt;&lt;P&gt;      zedidd40-hlevel          = '01'.&lt;/P&gt;&lt;P&gt;      zedidd40-sdata           = ze1bpache01.&lt;/P&gt;&lt;P&gt;      append zedidd40.         " e1bpache01&lt;/P&gt;&lt;P&gt;      witemno = 0.&lt;/P&gt;&lt;P&gt;      witemno_gst = 0.&lt;/P&gt;&lt;P&gt;      witemno_qst = 0.&lt;/P&gt;&lt;P&gt;      witemno_new = 0.&lt;/P&gt;&lt;P&gt;      wsegnum = 1.&lt;/P&gt;&lt;P&gt;    endif. " end of header&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="----------------------" /&gt;CUSTOMER--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------" /&gt;&lt;P&gt;    if new_input-line(1) = 'C'.&lt;/P&gt;&lt;P&gt;      clear ze1bpacar01.&lt;/P&gt;&lt;P&gt;      clear zedidd40.&lt;/P&gt;&lt;P&gt;      cust = new_input-line.&lt;/P&gt;&lt;P&gt;      if cust-amount cs ' '.&lt;/P&gt;&lt;P&gt;        condense cust-amount.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*E1BPACAR01&lt;/P&gt;&lt;P&gt;      witemno = witemno + 1.&lt;/P&gt;&lt;P&gt;      wsegnum = wsegnum + 1.&lt;/P&gt;&lt;P&gt;      ze1bpacar01-itemno_acc = witemno.&lt;/P&gt;&lt;P&gt;      if cust-no+9(1) = ' '.&lt;/P&gt;&lt;P&gt;        shift cust-no right.&lt;/P&gt;&lt;P&gt;        replace ' ' with '0' into cust-no.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      ze1bpacar01-customer = cust-no.&lt;/P&gt;&lt;P&gt;      select single * from knb1 into wa_knb1&lt;/P&gt;&lt;P&gt;             where  kunnr       = cust-no&lt;/P&gt;&lt;P&gt;             and    bukrs       = header-comp_code.&lt;/P&gt;&lt;P&gt;      if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        write : / 'Customer ', cust-no.&lt;/P&gt;&lt;P&gt;        write :  'does not exist in company code ', header-comp_code.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if header-aar_ind = 'Y'.&lt;/P&gt;&lt;P&gt;        ze1bpacar01-pmnttrms = 'Z511'.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        ze1bpacar01-pmnttrms = 'Z512'.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      if header-comp_code = '1000' or&lt;/P&gt;&lt;P&gt;         header-comp_code = '2000'.&lt;/P&gt;&lt;P&gt;        concatenate 'Car Repairs Billing for' cust-billing_ym into&lt;/P&gt;&lt;P&gt;          ze1bpacar01-item_text separated by space.&lt;/P&gt;&lt;P&gt;      elseif header-comp_code = '3000' or&lt;/P&gt;&lt;P&gt;             header-comp_code = '4000'.&lt;/P&gt;&lt;P&gt;        select single ltx from  t247 into mm_name&lt;/P&gt;&lt;P&gt;            where spras  = 'EN'&lt;/P&gt;&lt;P&gt;            and   mnr    = cust-billing_ym+4(2).&lt;/P&gt;&lt;P&gt;        concatenate 'AAR CAR REPAIRS ' mm_name&lt;/P&gt;&lt;P&gt;          cust-billing_ym(4) into ze1bpacar01-item_text&lt;/P&gt;&lt;P&gt;              separated by space.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      zedidd40-docnum          = wdocnum.&lt;/P&gt;&lt;P&gt;      zedidd40-segnum          = wsegnum.&lt;/P&gt;&lt;P&gt;      zedidd40-segnam          = 'E1BPACAR01'.&lt;/P&gt;&lt;P&gt;      zedidd40-hlevel          = '02'.&lt;/P&gt;&lt;P&gt;      zedidd40-sdata           = ze1bpacar01.&lt;/P&gt;&lt;P&gt;      append zedidd40.         " e1bpacar01&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;*E1BPACCR01&lt;/P&gt;&lt;P&gt;      clear ze1bpaccr01.&lt;/P&gt;&lt;P&gt;      clear zedidd40.&lt;/P&gt;&lt;P&gt;      ze1bpaccr01-itemno_acc = witemno.                     "E1BPACAR01&lt;/P&gt;&lt;P&gt;      if cust-curr = 'U'.&lt;/P&gt;&lt;P&gt;        ze1bpaccr01-currency = 'USD'.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        ze1bpaccr01-currency = 'CAD'.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if header-dt_cr = 'DR'.&lt;/P&gt;&lt;P&gt;        ze1bpaccr01-amt_doccur = cust-amount.&lt;/P&gt;&lt;P&gt;        ze1bpaccr01-amt_base   = cust-amount.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        concatenate '-' cust-amount into ze1bpaccr01-amt_doccur.&lt;/P&gt;&lt;P&gt;        concatenate '-' cust-amount into ze1bpaccr01-amt_base.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      zedidd40-docnum          = wdocnum.&lt;/P&gt;&lt;P&gt;*After sort, segnum gets a new value according to config.&lt;/P&gt;&lt;P&gt;      zedidd40-segnum          = '999997'.&lt;/P&gt;&lt;P&gt;      zedidd40-segnam          = 'E1BPACCR01'.&lt;/P&gt;&lt;P&gt;      zedidd40-hlevel          = '02'.&lt;/P&gt;&lt;P&gt;      zedidd40-sdata           = ze1bpaccr01.&lt;/P&gt;&lt;P&gt;      append zedidd40.         " e1bpaccr01&lt;/P&gt;&lt;P&gt;    endif.   " end of customer&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="------------------------" /&gt;DETAIL--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------" /&gt;&lt;P&gt;    if new_input-line(1) = 'G'.&lt;/P&gt;&lt;P&gt;      clear ze1bpacgl01.&lt;/P&gt;&lt;P&gt;      clear zedidd40.&lt;/P&gt;&lt;P&gt;*E1BPACGL01&lt;/P&gt;&lt;P&gt;      gdetail = new_input-line.&lt;/P&gt;&lt;P&gt;      if gdetail-itemtext cs 'REBUTTAL'.&lt;/P&gt;&lt;P&gt;        gdetail-provstate = cust-provstate.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      if gdetail-amount cs ' '.&lt;/P&gt;&lt;P&gt;        condense gdetail-amount.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      if gdetail-gst_amount cs ' '.&lt;/P&gt;&lt;P&gt;        condense gdetail-gst_amount.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      if gdetail-qst_amount cs ' '.&lt;/P&gt;&lt;P&gt;        condense gdetail-qst_amount.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      shift gdetail-itemtext left deleting leading ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      witemno = witemno + 1.&lt;/P&gt;&lt;P&gt;      wsegnum = wsegnum + 1.&lt;/P&gt;&lt;P&gt;      ze1bpacgl01-itemno_acc = witemno.&lt;/P&gt;&lt;P&gt;      ze1bpacgl01-gl_account = '0000064520'.&lt;/P&gt;&lt;P&gt;      ze1bpacgl01-tax_code   = gdetail-taxcode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if gdetail-itemtext+7(8) = 'REBUTTAL'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Rebilling - build tax jurisdiction based on customer region/state&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        if ( cust-provstate = 'NB' or cust-provstate = 'NS'&lt;/P&gt;&lt;P&gt;          or cust-provstate = 'NF' )&lt;/P&gt;&lt;P&gt;        and ( header-comp_code = '1000' or  header-comp_code = '2000' ).&lt;/P&gt;&lt;P&gt;      concatenate 'CH' cust-provstate '000' into ze1bpacgl01-taxjurcode.&lt;/P&gt;&lt;P&gt;        elseif&lt;/P&gt;&lt;P&gt;           ( cust-provstate = 'BC' or cust-provstate = 'AB'&lt;/P&gt;&lt;P&gt;          or cust-provstate = 'MB'  or cust-provstate = 'SK'&lt;/P&gt;&lt;P&gt;          or cust-provstate = 'ON'  or cust-provstate = 'PE' )&lt;/P&gt;&lt;P&gt;        and ( header-comp_code = '1000' or  header-comp_code = '2000' ).&lt;/P&gt;&lt;P&gt;      concatenate 'CA' cust-provstate '000' into ze1bpacgl01-taxjurcode.&lt;/P&gt;&lt;P&gt;        elseif&lt;/P&gt;&lt;P&gt;              ( cust-provstate = 'PQ' or cust-provstate = 'QC' )&lt;/P&gt;&lt;P&gt;        and ( header-comp_code = '1000' or  header-comp_code = '2000' ).&lt;/P&gt;&lt;P&gt;          move 'CAQC000' to ze1bpacgl01-taxjurcode.&lt;/P&gt;&lt;P&gt;        elseif&lt;/P&gt;&lt;P&gt;            ( cust-provstate = 'AK' or cust-provstate = 'AL'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'AR' or cust-provstate = 'AS'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'AZ' or cust-provstate = 'CO'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'CT' or cust-provstate = 'DC'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'DE' or cust-provstate = 'FL'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'GA' or cust-provstate = 'GU'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'HI' or cust-provstate = 'IA'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'ID' or cust-provstate = 'IL'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'IN' or cust-provstate = 'KS'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'KY' or cust-provstate = 'LA'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'MA' or cust-provstate = 'MD'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'ME' or cust-provstate = 'MI'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'MN' or cust-provstate = 'MO'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'MP' or cust-provstate = 'MS'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'MT' or cust-provstate = 'NC'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'ND' or cust-provstate = 'NE'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'NH' or cust-provstate = 'NJ'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'NM' or cust-provstate = 'NV'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'NY' or cust-provstate = 'OH'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'OK' or cust-provstate = 'OR'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'PA' or cust-provstate = 'PR'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'RI' or cust-provstate = 'SC'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'SD' or cust-provstate = 'TN'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'TX' or cust-provstate = 'UT'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'VA' or cust-provstate = 'VI'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'VT' or cust-provstate = 'WA'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'WI' or cust-provstate = 'WV'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'WY' or cust-provstate = 'DL' ).&lt;/P&gt;&lt;P&gt;         concatenate cust-provstate '00000' into ze1bpacgl01-taxjurcode.&lt;/P&gt;&lt;P&gt;        elseif&lt;/P&gt;&lt;P&gt;          cust-provstate = 'CA'.&lt;/P&gt;&lt;P&gt;          move 'CL00000' to ze1bpacgl01-taxjurcode.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          move 'CA00000' to ze1bpacgl01-taxjurcode.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      else.  " when string text is NOT REBUTTAL&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Regular billing - build tax jurisdiction based on line item&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;region/state (where work is performed)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        if ( gdetail-provstate = 'NB' or gdetail-provstate = 'NS'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'NF' ).&lt;/P&gt;&lt;P&gt;          concatenate 'CH' gdetail-provstate '000'&lt;/P&gt;&lt;P&gt;                       into ze1bpacgl01-taxjurcode.&lt;/P&gt;&lt;P&gt;        elseif ( gdetail-provstate = 'BC' or gdetail-provstate = 'AB'&lt;/P&gt;&lt;P&gt;          or gdetail-provstate = 'MB'  or gdetail-provstate = 'SK'&lt;/P&gt;&lt;P&gt;          or gdetail-provstate = 'ON'  or gdetail-provstate = 'PE' ).&lt;/P&gt;&lt;P&gt;          concatenate 'CA' gdetail-provstate '000'&lt;/P&gt;&lt;P&gt;                      into ze1bpacgl01-taxjurcode.&lt;/P&gt;&lt;P&gt;        elseif ( gdetail-provstate = 'PQ' or gdetail-provstate = 'QC' ).&lt;/P&gt;&lt;P&gt;          move 'CAQC000' to ze1bpacgl01-taxjurcode.&lt;/P&gt;&lt;P&gt;        elseif ( gdetail-provstate = 'AK' or gdetail-provstate = 'AL'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'AR' or gdetail-provstate = 'AS'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'AZ' or gdetail-provstate = 'CO'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'CT' or gdetail-provstate = 'DC'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'DE' or gdetail-provstate = 'FL'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'GA' or gdetail-provstate = 'GU'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'HI' or gdetail-provstate = 'IA'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'ID' or gdetail-provstate = 'IL'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'IN' or gdetail-provstate = 'KS'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'KY' or gdetail-provstate = 'LA'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'MA' or gdetail-provstate = 'MD'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'ME' or gdetail-provstate = 'MI'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'MN' or gdetail-provstate = 'MO'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'MP' or gdetail-provstate = 'MS'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'MT' or gdetail-provstate = 'NC'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'ND' or gdetail-provstate = 'NE'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'NH' or gdetail-provstate = 'NJ'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'NM' or gdetail-provstate = 'NV'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'NY' or gdetail-provstate = 'OH'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'OK' or gdetail-provstate = 'OR'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'PA' or gdetail-provstate = 'PR'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'RI' or gdetail-provstate = 'SC'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'SD' or gdetail-provstate = 'TN'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'TX' or gdetail-provstate = 'UT'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'VA' or gdetail-provstate = 'VI'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'VT' or gdetail-provstate = 'WA'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'WI' or gdetail-provstate = 'WV'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'WY' or gdetail-provstate = 'DL' ).&lt;/P&gt;&lt;P&gt;          concatenate gdetail-provstate '00000'&lt;/P&gt;&lt;P&gt;                     into ze1bpacgl01-taxjurcode.&lt;/P&gt;&lt;P&gt;        elseif gdetail-provstate = 'CA'.&lt;/P&gt;&lt;P&gt;          move 'CL00000' to ze1bpacgl01-taxjurcode.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          move 'CA00000' to ze1bpacgl01-taxjurcode.&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;      ze1bpacgl01-alloc_nmbr = 'AAR'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if header-comp_code = '1000' or&lt;/P&gt;&lt;P&gt;           header-comp_code = '2000'.&lt;/P&gt;&lt;P&gt;        concatenate 'Car Repairs Billing for'  gdetail-itemtext&lt;/P&gt;&lt;P&gt;                 into ze1bpacgl01-item_text separated by space.&lt;/P&gt;&lt;P&gt;      elseif header-comp_code = '3000' or&lt;/P&gt;&lt;P&gt;             header-comp_code = '4000'.&lt;/P&gt;&lt;P&gt;        select single ltx from  t247 into mm_name&lt;/P&gt;&lt;P&gt;               where  spras  = 'EN'&lt;/P&gt;&lt;P&gt;               and    mnr    = cust-billing_ym+4(2).&lt;/P&gt;&lt;P&gt;        concatenate 'AAR CAR REPAIRS ' mm_name gdetail-itemtext&lt;/P&gt;&lt;P&gt;           into ze1bpacgl01-item_text separated by space.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      if header-comp_code = '1000'.&lt;/P&gt;&lt;P&gt;        ze1bpacgl01-costcenter = '0000001346'.&lt;/P&gt;&lt;P&gt;      elseif header-comp_code = '3000'.&lt;/P&gt;&lt;P&gt;        ze1bpacgl01-costcenter = '0000001338'.&lt;/P&gt;&lt;P&gt;      elseif header-comp_code = '4000'.&lt;/P&gt;&lt;P&gt;        ze1bpacgl01-costcenter = '0000002353'.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        ze1bpacgl01-costcenter = ''.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      zedidd40-docnum          = wdocnum.&lt;/P&gt;&lt;P&gt;      zedidd40-segnum          = wsegnum.&lt;/P&gt;&lt;P&gt;      zedidd40-segnam          = 'E1BPACGL01'.&lt;/P&gt;&lt;P&gt;      zedidd40-hlevel          = '02'.&lt;/P&gt;&lt;P&gt;      zedidd40-sdata           = ze1bpacgl01.&lt;/P&gt;&lt;P&gt;      append zedidd40.         " e1bpacgl01&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;*E1BPACCR01&lt;/P&gt;&lt;P&gt;      clear ze1bpaccr01.&lt;/P&gt;&lt;P&gt;      clear zedidd40.&lt;/P&gt;&lt;P&gt;      ze1bpaccr01-itemno_acc = witemno. " E1BPACGL01&lt;/P&gt;&lt;P&gt;      if cust-curr = 'U'.&lt;/P&gt;&lt;P&gt;        ze1bpaccr01-currency = 'USD'.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        ze1bpaccr01-currency = 'CAD'.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      if header-dt_cr = 'DR'.&lt;/P&gt;&lt;P&gt;        concatenate '-' gdetail-amount into ze1bpaccr01-amt_doccur.&lt;/P&gt;&lt;P&gt;        concatenate '-' gdetail-amount into ze1bpaccr01-amt_base.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        ze1bpaccr01-amt_doccur  = gdetail-amount.&lt;/P&gt;&lt;P&gt;        ze1bpaccr01-amt_base   = gdetail-amount.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      zedidd40-docnum          = wdocnum.&lt;/P&gt;&lt;P&gt;*After sort, segnum gets a new value according to config.&lt;/P&gt;&lt;P&gt;      zedidd40-segnum          = '999997'.&lt;/P&gt;&lt;P&gt;      zedidd40-segnam          = 'E1BPACCR01'.&lt;/P&gt;&lt;P&gt;      zedidd40-hlevel          = '02'.&lt;/P&gt;&lt;P&gt;      zedidd40-sdata           = ze1bpaccr01.&lt;/P&gt;&lt;P&gt;      append zedidd40.         " e1bpaccr01&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------" /&gt;GST--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------" /&gt;&lt;P&gt;      clear ze1bpactx01.&lt;/P&gt;&lt;P&gt;      clear zedidd40.&lt;/P&gt;&lt;P&gt;*E1BPACTX01&lt;/P&gt;&lt;P&gt;      witemno_gst = witemno_gst + 1.&lt;/P&gt;&lt;P&gt;      ze1bpactx01-itemno_acc = witemno_gst.&lt;/P&gt;&lt;P&gt;      ze1bpactx01-gl_account = '0000023200'.                "T030K&lt;/P&gt;&lt;P&gt;      ze1bpactx01-tax_code    = gdetail-taxcode.            "no 1&lt;/P&gt;&lt;P&gt;      ze1bpactx01-acct_key    = 'MW1'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     SELECT SINGLE ktosl FROM  t030k INTO ze1bpactx01-acct_key&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            WHERE  ktopl  = 'CPR'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            AND    mwskz  = ''&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            AND    konts  = ze1bpactx01-gl_account&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            AND    konth  = ze1bpactx01-gl_account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if gdetail-itemtext+7(8) = 'REBUTTAL'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Rebilling - build tax jurisdiction based on customer region/state&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        if ( header-comp_code = '1000' or header-comp_code = '2000'&lt;/P&gt;&lt;P&gt;          or header-comp_code = '3000' ) and&lt;/P&gt;&lt;P&gt;           ( cust-provstate = 'NB' or cust-provstate = 'NS'&lt;/P&gt;&lt;P&gt;          or cust-provstate = 'NF' or cust-provstate = 'BC'&lt;/P&gt;&lt;P&gt;          or cust-provstate = 'AB' or cust-provstate = 'MB'&lt;/P&gt;&lt;P&gt;          or cust-provstate = 'SK' or cust-provstate = 'ON'&lt;/P&gt;&lt;P&gt;          or cust-provstate = 'PE' or cust-provstate = 'PQ'&lt;/P&gt;&lt;P&gt;          or cust-provstate = 'QC' ).&lt;/P&gt;&lt;P&gt;          move 'CA00000' to ze1bpactx01-taxjurcode.&lt;/P&gt;&lt;P&gt;        elseif ( cust-provstate = 'AK' or cust-provstate = 'AL'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'AR' or cust-provstate = 'AS'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'AZ' or cust-provstate = 'CO'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'CT' or cust-provstate = 'DC'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'DE' or cust-provstate = 'FL'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'GA' or cust-provstate = 'GU'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'HI' or cust-provstate = 'IA'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'ID' or cust-provstate = 'IL'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'IN' or cust-provstate = 'KS'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'KY' or cust-provstate = 'LA'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'MA' or cust-provstate = 'MD'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'ME' or cust-provstate = 'MI'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'MN' or cust-provstate = 'MO'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'MP' or cust-provstate = 'MS'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'MT' or cust-provstate = 'NC'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'ND' or cust-provstate = 'NE'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'NH' or cust-provstate = 'NJ'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'NM' or cust-provstate = 'NV'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'NY' or cust-provstate = 'OH'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'OK' or cust-provstate = 'OR'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'PA' or cust-provstate = 'PR'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'RI' or cust-provstate = 'SC'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'SD' or cust-provstate = 'TN'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'TX' or cust-provstate = 'UT'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'VA' or cust-provstate = 'VI'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'VT' or cust-provstate = 'WA'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'WI' or cust-provstate = 'WV'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'WY' or cust-provstate = 'DL' ).&lt;/P&gt;&lt;P&gt;         concatenate cust-provstate '00000' into ze1bpactx01-taxjurcode.&lt;/P&gt;&lt;P&gt;        elseif cust-provstate = 'CA'.&lt;/P&gt;&lt;P&gt;          move 'CL00000' to ze1bpactx01-taxjurcode.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      else.  " when string text is NOT REBUTTAL&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Regular billing - build tax jurisdiction based on line item&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;region/state (where work is performed)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        if ( header-comp_code = '1000' or  header-comp_code = '2000' )&lt;/P&gt;&lt;P&gt;            and ( gdetail-provstate = 'NB' or gdetail-provstate = 'NS'&lt;/P&gt;&lt;P&gt;               or gdetail-provstate = 'NF' or gdetail-provstate = 'BC'&lt;/P&gt;&lt;P&gt;               or gdetail-provstate = 'AB' or gdetail-provstate = 'MB'&lt;/P&gt;&lt;P&gt;               or gdetail-provstate = 'SK' or gdetail-provstate = 'ON'&lt;/P&gt;&lt;P&gt;               or gdetail-provstate = 'PE' or gdetail-provstate = 'PQ'&lt;/P&gt;&lt;P&gt;               or gdetail-provstate = 'QC' ).&lt;/P&gt;&lt;P&gt;          move 'CA00000' to ze1bpactx01-taxjurcode.&lt;/P&gt;&lt;P&gt;        elseif ( gdetail-provstate = 'AK' or gdetail-provstate = 'AL'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'AR' or gdetail-provstate = 'AS'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'AZ' or gdetail-provstate = 'CO'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'CT' or gdetail-provstate = 'DC'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'DE' or gdetail-provstate = 'FL'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'GA' or gdetail-provstate = 'GU'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'HI' or gdetail-provstate = 'IA'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'ID' or gdetail-provstate = 'IL'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'IN' or gdetail-provstate = 'KS'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'KY' or gdetail-provstate = 'LA'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'MA' or gdetail-provstate = 'MD'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'ME' or gdetail-provstate = 'MI'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'MN' or gdetail-provstate = 'MO'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'MP' or gdetail-provstate = 'MS'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'MT' or gdetail-provstate = 'NC'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'ND' or gdetail-provstate = 'NE'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'NH' or gdetail-provstate = 'NJ'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'NM' or gdetail-provstate = 'NV'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'NY' or gdetail-provstate = 'OH'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'OK' or gdetail-provstate = 'OR'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'PA' or gdetail-provstate = 'PR'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'RI' or gdetail-provstate = 'SC'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'SD' or gdetail-provstate = 'TN'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'TX' or gdetail-provstate = 'UT'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'VA' or gdetail-provstate = 'VI'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'VT' or gdetail-provstate = 'WA'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'WI' or gdetail-provstate = 'WV'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'WY' or gdetail-provstate = 'DL' ).&lt;/P&gt;&lt;P&gt;          concatenate gdetail-provstate '00000'&lt;/P&gt;&lt;P&gt;                    into ze1bpactx01-taxjurcode.&lt;/P&gt;&lt;P&gt;        elseif gdetail-provstate = 'CA'.&lt;/P&gt;&lt;P&gt;          move 'CL00000' to ze1bpactx01-taxjurcode.&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;      if gdetail-itemtext+7(8) = 'REBUTTAL'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Rebilling - build tax jurisdiction based on customer region/state&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        if ( header-comp_code = '1000' or  header-comp_code = '2000' )&lt;/P&gt;&lt;P&gt;           and ( cust-provstate = 'NB' or cust-provstate = 'NS'&lt;/P&gt;&lt;P&gt;              or cust-provstate = 'NF' or cust-provstate = 'BC'&lt;/P&gt;&lt;P&gt;              or cust-provstate = 'AB' or cust-provstate = 'MB'&lt;/P&gt;&lt;P&gt;              or cust-provstate = 'SK' or cust-provstate = 'ON'&lt;/P&gt;&lt;P&gt;              or cust-provstate = 'PE' or cust-provstate = 'PQ'&lt;/P&gt;&lt;P&gt;              or cust-provstate = 'QC' )&lt;/P&gt;&lt;P&gt;              or gdetail-taxcode = 'SE' .&lt;/P&gt;&lt;P&gt;          move 'JRC1' to ze1bpactx01-cond_key.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          move 'JR1' to ze1bpactx01-cond_key.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      else. " text do NOT have string REBUTTAL&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Regular billing - build tax jurisdiction based on line item&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;region/state (where work is performed)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        if ( header-comp_code = '1000' or  header-comp_code = '2000' )&lt;/P&gt;&lt;P&gt;           and ( gdetail-provstate = 'NB' or gdetail-provstate = 'NS'&lt;/P&gt;&lt;P&gt;              or gdetail-provstate = 'NF' or gdetail-provstate = 'BC'&lt;/P&gt;&lt;P&gt;              or gdetail-provstate = 'AB' or gdetail-provstate = 'MB'&lt;/P&gt;&lt;P&gt;              or gdetail-provstate = 'SK' or gdetail-provstate = 'ON'&lt;/P&gt;&lt;P&gt;              or gdetail-provstate = 'PE' or gdetail-provstate = 'PQ'&lt;/P&gt;&lt;P&gt;              or gdetail-provstate = 'QC' )&lt;/P&gt;&lt;P&gt;              or gdetail-taxcode = 'SE' .&lt;/P&gt;&lt;P&gt;          move 'JRC1' to ze1bpactx01-cond_key.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          move 'JR1' to ze1bpactx01-cond_key.&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;      if gdetail-itemtext+7(8) = 'REBUTTAL'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Rebilling - build tax jurisdiction based on customer region/state&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        if ( cust-provstate = 'NB' or cust-provstate = 'NS'&lt;/P&gt;&lt;P&gt;          or cust-provstate = 'NF' ) and&lt;/P&gt;&lt;P&gt;          ( header-comp_code = '1000' or header-comp_code = '2000' ).&lt;/P&gt;&lt;P&gt;          concatenate 'CH' cust-provstate '000' into&lt;/P&gt;&lt;P&gt;                 ze1bpactx01-taxjurcode_deep.&lt;/P&gt;&lt;P&gt;        elseif ( cust-provstate = 'BC' or cust-provstate = 'AB'&lt;/P&gt;&lt;P&gt;          or cust-provstate = 'MB' or cust-provstate = 'SK'&lt;/P&gt;&lt;P&gt;          or cust-provstate = 'ON' or cust-provstate = 'PE' )&lt;/P&gt;&lt;P&gt;       and ( header-comp_code = '1000' or header-comp_code = '2000' ).&lt;/P&gt;&lt;P&gt;          concatenate 'CA' cust-provstate '000' into&lt;/P&gt;&lt;P&gt;                 ze1bpactx01-taxjurcode_deep.&lt;/P&gt;&lt;P&gt;        elseif ( cust-provstate = 'PQ' or cust-provstate = 'QC' )&lt;/P&gt;&lt;P&gt;       and ( header-comp_code = '1000' or header-comp_code = '2000' ).&lt;/P&gt;&lt;P&gt;          move 'CAQC000' to ze1bpactx01-taxjurcode_deep.&lt;/P&gt;&lt;P&gt;        elseif ( cust-provstate = 'AK' or cust-provstate = 'AL'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'AR' or cust-provstate = 'AS'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'AZ' or cust-provstate = 'CO'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'CT' or cust-provstate = 'DC'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'DE' or cust-provstate = 'FL'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'GA' or cust-provstate = 'GU'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'HI' or cust-provstate = 'IA'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'ID' or cust-provstate = 'IL'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'IN' or cust-provstate = 'KS'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'KY' or cust-provstate = 'LA'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'MA' or cust-provstate = 'MD'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'ME' or cust-provstate = 'MI'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'MN' or cust-provstate = 'MO'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'MP' or cust-provstate = 'MS'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'MT' or cust-provstate = 'NC'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'ND' or cust-provstate = 'NE'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'NH' or cust-provstate = 'NJ'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'NM' or cust-provstate = 'NV'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'NY' or cust-provstate = 'OH'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'OK' or cust-provstate = 'OR'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'PA' or cust-provstate = 'PR'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'RI' or cust-provstate = 'SC'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'SD' or cust-provstate = 'TN'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'TX' or cust-provstate = 'UT'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'VA' or cust-provstate = 'VI'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'VT' or cust-provstate = 'WA'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'WI' or cust-provstate = 'WV'&lt;/P&gt;&lt;P&gt;           or cust-provstate = 'WY' or cust-provstate = 'DL' ).&lt;/P&gt;&lt;P&gt;          concatenate cust-provstate '00000'&lt;/P&gt;&lt;P&gt;              into ze1bpactx01-taxjurcode_deep.&lt;/P&gt;&lt;P&gt;        elseif cust-provstate = 'CA'.&lt;/P&gt;&lt;P&gt;          move 'CL00000' to ze1bpactx01-taxjurcode_deep.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          move 'CA00000' to ze1bpactx01-taxjurcode_deep.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      else.  " when string text is NOT REBUTTAL&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Regular billing - build tax jurisdiction based on line item&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;region/state (where work is performed)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        if ( gdetail-provstate = 'NB' or gdetail-provstate = 'NS'&lt;/P&gt;&lt;P&gt;          or gdetail-provstate = 'NF' ).&lt;/P&gt;&lt;P&gt;          concatenate 'CH' gdetail-provstate '000' into&lt;/P&gt;&lt;P&gt;                 ze1bpactx01-taxjurcode_deep.&lt;/P&gt;&lt;P&gt;        elseif ( gdetail-provstate = 'BC' or gdetail-provstate = 'AB'&lt;/P&gt;&lt;P&gt;          or gdetail-provstate = 'MB' or gdetail-provstate = 'SK'&lt;/P&gt;&lt;P&gt;          or gdetail-provstate = 'ON' or gdetail-provstate = 'PE' ).&lt;/P&gt;&lt;P&gt;          concatenate 'CA' gdetail-provstate '000' into&lt;/P&gt;&lt;P&gt;                 ze1bpactx01-taxjurcode_deep.&lt;/P&gt;&lt;P&gt;        elseif ( gdetail-provstate = 'PQ' or gdetail-provstate = 'QC' ).&lt;/P&gt;&lt;P&gt;          move 'CAQC000' to ze1bpactx01-taxjurcode_deep.&lt;/P&gt;&lt;P&gt;        elseif ( gdetail-provstate = 'AK' or gdetail-provstate = 'AL'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'AR' or gdetail-provstate = 'AS'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'AZ' or gdetail-provstate = 'CO'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'CT' or gdetail-provstate = 'DC'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'DE' or gdetail-provstate = 'FL'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'GA' or gdetail-provstate = 'GU'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'HI' or gdetail-provstate = 'IA'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'ID' or gdetail-provstate = 'IL'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'IN' or gdetail-provstate = 'KS'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'KY' or gdetail-provstate = 'LA'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'MA' or gdetail-provstate = 'MD'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'ME' or gdetail-provstate = 'MI'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'MN' or gdetail-provstate = 'MO'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'MP' or gdetail-provstate = 'MS'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'MT' or gdetail-provstate = 'NC'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'ND' or gdetail-provstate = 'NE'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'NH' or gdetail-provstate = 'NJ'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'NM' or gdetail-provstate = 'NV'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'NY' or gdetail-provstate = 'OH'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'OK' or gdetail-provstate = 'OR'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'PA' or gdetail-provstate = 'PR'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'RI' or gdetail-provstate = 'SC'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'SD' or gdetail-provstate = 'TN'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'TX' or gdetail-provstate = 'UT'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'VA' or gdetail-provstate = 'VI'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'VT' or gdetail-provstate = 'WA'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'WI' or gdetail-provstate = 'WV'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'WY' or gdetail-provstate = 'DL' ).&lt;/P&gt;&lt;P&gt;          concatenate gdetail-provstate '00000'&lt;/P&gt;&lt;P&gt;             into ze1bpactx01-taxjurcode_deep.&lt;/P&gt;&lt;P&gt;        elseif gdetail-provstate = 'CA'.&lt;/P&gt;&lt;P&gt;          move 'CL00000' to ze1bpactx01-taxjurcode_deep.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          move 'CA0000' to ze1bpactx01-taxjurcode_deep.&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;      zedidd40-docnum          = wdocnum.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;After sort, segnum gets a new value according to config.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      zedidd40-segnum          = '999995'.&lt;/P&gt;&lt;P&gt;      zedidd40-segnam          = 'E1BPACTX01'.&lt;/P&gt;&lt;P&gt;      zedidd40-hlevel          = '02'.&lt;/P&gt;&lt;P&gt;      zedidd40-sdata           = ze1bpactx01.&lt;/P&gt;&lt;P&gt;      append zedidd40.         " e1bpactx01&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*E1BPACCR01&lt;/P&gt;&lt;P&gt;      clear ze1bpaccr01.&lt;/P&gt;&lt;P&gt;      clear zedidd40.&lt;/P&gt;&lt;P&gt;      ze1bpaccr01-itemno_acc = witemno_gst. "E1BPACTX01 95&lt;/P&gt;&lt;P&gt;      if cust-curr = 'U'.&lt;/P&gt;&lt;P&gt;        ze1bpaccr01-currency = 'USD'.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        ze1bpaccr01-currency = 'CAD'.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if header-dt_cr = 'DR'.&lt;/P&gt;&lt;P&gt;        concatenate '-' gdetail-gst_amount into ze1bpaccr01-amt_doccur.&lt;/P&gt;&lt;P&gt;        concatenate '-' gdetail-amount into ze1bpaccr01-amt_base.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        ze1bpaccr01-amt_doccur = gdetail-gst_amount.&lt;/P&gt;&lt;P&gt;        ze1bpaccr01-amt_base   = gdetail-amount.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      zedidd40-docnum          = wdocnum.&lt;/P&gt;&lt;P&gt;*After sort, segnum gets a new value according to config.&lt;/P&gt;&lt;P&gt;      zedidd40-segnum          = '999998'.&lt;/P&gt;&lt;P&gt;      zedidd40-segnam          = 'E1BPACCR01'.&lt;/P&gt;&lt;P&gt;      zedidd40-hlevel          = '02'.&lt;/P&gt;&lt;P&gt;      zedidd40-sdata           = ze1bpaccr01.&lt;/P&gt;&lt;P&gt;      append zedidd40.         " e1bpaccr01&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------" /&gt;QST--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------" /&gt;&lt;P&gt;      tx_write = 'N'.&lt;/P&gt;&lt;P&gt;      if ( gdetail-taxcode = 'SA' or gdetail-taxcode = 'SB' or&lt;/P&gt;&lt;P&gt;           gdetail-taxcode = 'SD' or gdetail-taxcode = 'SC' or&lt;/P&gt;&lt;P&gt;           gdetail-taxcode = 'SE' ) and&lt;/P&gt;&lt;P&gt;         ( gdetail-provstate = 'NB' or gdetail-provstate = 'NS' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'NF' or gdetail-provstate = 'BC' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'AB' or gdetail-provstate = 'MB' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'SK' or gdetail-provstate = 'ON' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'PE' or gdetail-provstate = 'PQ' or&lt;/P&gt;&lt;P&gt;        gdetail-provstate = 'QC' ) .                             "Canada&lt;/P&gt;&lt;P&gt;        tx_write = 'Y'.         " write a qst segment&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if ( gdetail-taxcode = 'SA' or gdetail-taxcode = 'SC' ) and&lt;/P&gt;&lt;P&gt;         ( gdetail-provstate = 'AK' or gdetail-provstate = 'AL' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'AR' or gdetail-provstate = 'AS' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'AZ' or gdetail-provstate = 'CO' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'CT' or gdetail-provstate = 'DC' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'DE' or gdetail-provstate = 'FL' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'GA' or gdetail-provstate = 'GU' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'HI' or gdetail-provstate = 'IA' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'ID' or gdetail-provstate = 'IL' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'IN' or gdetail-provstate = 'KS' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'KY' or gdetail-provstate = 'LA' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'MA' or gdetail-provstate = 'MD' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'ME' or gdetail-provstate = 'MI' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'MN' or gdetail-provstate = 'MO' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'MP' or gdetail-provstate = 'MS' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'MT' or gdetail-provstate = 'NC' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'ND' or gdetail-provstate = 'NE' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'NH' or gdetail-provstate = 'NJ' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'NM' or gdetail-provstate = 'NV' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'NY' or gdetail-provstate = 'OH' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'OK' or gdetail-provstate = 'OR' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'PA' or gdetail-provstate = 'PR' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'RI' or gdetail-provstate = 'SC' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'SD' or gdetail-provstate = 'TN' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'TX' or gdetail-provstate = 'UT' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'VA' or gdetail-provstate = 'VI' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'VT' or gdetail-provstate = 'WA' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'WI' or gdetail-provstate = 'WV' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'WY' or gdetail-provstate = 'DL' or&lt;/P&gt;&lt;P&gt;           gdetail-provstate = 'CA' ).&lt;/P&gt;&lt;P&gt;        tx_write = 'Y'.         " write a qst segment&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------" /&gt;&lt;P&gt;      if tx_write = 'Y'.&lt;/P&gt;&lt;P&gt;        clear ze1bpactx01.&lt;/P&gt;&lt;P&gt;        clear zedidd40.&lt;/P&gt;&lt;P&gt;*E1BPACTX01&lt;/P&gt;&lt;P&gt;        witemno_qst = witemno_qst + 1.&lt;/P&gt;&lt;P&gt;        ze1bpactx01-itemno_acc = witemno_qst.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        if gdetail-provstate = 'PQ' or gdetail-provstate = 'QC'.&lt;/P&gt;&lt;P&gt;          ze1bpactx01-gl_account = '0000023210'.&lt;/P&gt;&lt;P&gt;          ze1bpactx01-acct_key   = 'MW2'.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          ze1bpactx01-gl_account = '0000023220'.&lt;/P&gt;&lt;P&gt;          ze1bpactx01-acct_key   = 'MW3'.&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;       SELECT SINGLE ktosl FROM  t030k INTO ze1bpactx01-acct_key&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              WHERE  ktopl  = 'CPR'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              AND    mwskz  = ''&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              AND    konts  = ze1bpactx01-gl_account&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              AND    konth  = ze1bpactx01-gl_account.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ze1bpactx01-tax_code    = gdetail-taxcode.          "no 2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        if ( gdetail-provstate = 'NB' or gdetail-provstate = 'NS'&lt;/P&gt;&lt;P&gt;          or gdetail-provstate = 'NF' ).&lt;/P&gt;&lt;P&gt;          concatenate 'CH' gdetail-provstate '000' into&lt;/P&gt;&lt;P&gt;                 ze1bpactx01-taxjurcode.&lt;/P&gt;&lt;P&gt;        elseif ( gdetail-provstate = 'BC' or gdetail-provstate = 'AB'&lt;/P&gt;&lt;P&gt;          or gdetail-provstate = 'MB' or gdetail-provstate = 'SK'&lt;/P&gt;&lt;P&gt;          or gdetail-provstate = 'ON' or gdetail-provstate = 'PE' ).&lt;/P&gt;&lt;P&gt;          concatenate 'CA' gdetail-provstate '000' into&lt;/P&gt;&lt;P&gt;                 ze1bpactx01-taxjurcode.&lt;/P&gt;&lt;P&gt;        elseif ( gdetail-provstate = 'PQ'&lt;/P&gt;&lt;P&gt;              or gdetail-provstate = 'QC' ).&lt;/P&gt;&lt;P&gt;          move 'CAQC000' to ze1bpactx01-taxjurcode.&lt;/P&gt;&lt;P&gt;        elseif ( gdetail-provstate = 'AK' or gdetail-provstate = 'AL'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'AR' or gdetail-provstate = 'AS'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'AZ' or gdetail-provstate = 'CO'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'CT' or gdetail-provstate = 'DC'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'DE' or gdetail-provstate = 'FL'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'GA' or gdetail-provstate = 'GU'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'HI' or gdetail-provstate = 'IA'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'ID' or gdetail-provstate = 'IL'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'IN' or gdetail-provstate = 'KS'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'KY' or gdetail-provstate = 'LA'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'MA' or gdetail-provstate = 'MD'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'ME' or gdetail-provstate = 'MI'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'MN' or gdetail-provstate = 'MO'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'MP' or gdetail-provstate = 'MS'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'MT' or gdetail-provstate = 'NC'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'ND' or gdetail-provstate = 'NE'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'NH' or gdetail-provstate = 'NJ'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'NM' or gdetail-provstate = 'NV'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'NY' or gdetail-provstate = 'OH'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'OK' or gdetail-provstate = 'OR'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'PA' or gdetail-provstate = 'PR'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'RI' or gdetail-provstate = 'SC'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'SD' or gdetail-provstate = 'TN'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'TX' or gdetail-provstate = 'UT'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'VA' or gdetail-provstate = 'VI'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'VT' or gdetail-provstate = 'WA'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'WI' or gdetail-provstate = 'WV'&lt;/P&gt;&lt;P&gt;           or gdetail-provstate = 'WY' or gdetail-provstate = 'DL' ).&lt;/P&gt;&lt;P&gt;          concatenate gdetail-provstate '00000'&lt;/P&gt;&lt;P&gt;             into ze1bpactx01-taxjurcode.&lt;/P&gt;&lt;P&gt;        elseif gdetail-provstate = 'CA'.&lt;/P&gt;&lt;P&gt;          move 'CL00000' to ze1bpactx01-taxjurcode.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ze1bpactx01-taxjurcode_deep = ze1bpactx01-taxjurcode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        clear wa_land1.&lt;/P&gt;&lt;P&gt;        if gdetail-provstate = 'PQ'.  "Quebec - OLD&lt;/P&gt;&lt;P&gt;          select single land1 from  t005s into wa_land1&lt;/P&gt;&lt;P&gt;                 where  land1  = 'CA'&lt;/P&gt;&lt;P&gt;                 and    bland  = 'PQ'&lt;/P&gt;&lt;P&gt;                 and    fprcd  = ''&lt;/P&gt;&lt;P&gt;                 and    herbl  = ''.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          select single land1 from  t005s into wa_land1&lt;/P&gt;&lt;P&gt;                 where  land1  = 'CA'&lt;/P&gt;&lt;P&gt;                 and    bland  = gdetail-provstate&lt;/P&gt;&lt;P&gt;                 and    fprcd  = gdetail-provstate&lt;/P&gt;&lt;P&gt;                 and    herbl  = ''.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;        if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;          wa_land1 = 'CA'.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          wa_land1 = 'US'.&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;Get the latest valid record.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        refresh wa_a053.&lt;/P&gt;&lt;P&gt;        clear wa_a053.&lt;/P&gt;&lt;P&gt;        select * from  a053 into wa_a053&lt;/P&gt;&lt;P&gt;               where  mwskz  = gdetail-taxcode&lt;/P&gt;&lt;P&gt;               and    aland  = wa_land1&lt;/P&gt;&lt;P&gt;               and    txjcd  = ze1bpactx01-taxjurcode.&lt;/P&gt;&lt;P&gt;               append wa_a053.&lt;/P&gt;&lt;P&gt;        endselect.&lt;/P&gt;&lt;P&gt;        sort wa_a053 by datab.&lt;/P&gt;&lt;P&gt;        loop at wa_a053.&lt;/P&gt;&lt;P&gt;          ze1bpactx01-cond_key = wa_a053-kschl.&lt;/P&gt;&lt;P&gt;        endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        zedidd40-docnum          = wdocnum.&lt;/P&gt;&lt;P&gt;*After sort, segnum gets a new value according to config.&lt;/P&gt;&lt;P&gt;        zedidd40-segnum          = '999996'.&lt;/P&gt;&lt;P&gt;        zedidd40-segnam          = 'E1BPACTX01'.&lt;/P&gt;&lt;P&gt;        zedidd40-hlevel          = '02'.&lt;/P&gt;&lt;P&gt;        zedidd40-sdata           = ze1bpactx01.&lt;/P&gt;&lt;P&gt;        append zedidd40.         " e1bpactx01&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*E1BPACCR01&lt;/P&gt;&lt;P&gt;        clear ze1bpaccr01.&lt;/P&gt;&lt;P&gt;        clear zedidd40.&lt;/P&gt;&lt;P&gt;        ze1bpaccr01-itemno_acc = witemno_qst. "E1BPACTX01 96&lt;/P&gt;&lt;P&gt;        if cust-curr = 'U'.&lt;/P&gt;&lt;P&gt;          ze1bpaccr01-currency = 'USD'.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          ze1bpaccr01-currency = 'CAD'.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        if header-dt_cr = 'DR'.&lt;/P&gt;&lt;P&gt;         concatenate '-' gdetail-qst_amount into ze1bpaccr01-amt_doccur.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          ze1bpaccr01-amt_doccur = gdetail-gst_amount.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        if gdetail-qst_amount &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          if header-dt_cr = 'DR'.&lt;/P&gt;&lt;P&gt;            ze1bpaccr01-amt_base = gdetail-amount + gdetail-gst_amount.&lt;/P&gt;&lt;P&gt;            condense ze1bpaccr01-amt_base.&lt;/P&gt;&lt;P&gt;         concatenate '-' ze1bpaccr01-amt_base into ze1bpaccr01-amt_base.&lt;/P&gt;&lt;P&gt;          else.&lt;/P&gt;&lt;P&gt;            ze1bpaccr01-amt_base = gdetail-amount + gdetail-gst_amount.&lt;/P&gt;&lt;P&gt;            condense ze1bpaccr01-amt_base.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;        else.  " qst amount is zero&lt;/P&gt;&lt;P&gt;          if header-dt_cr = 'DR'.&lt;/P&gt;&lt;P&gt;            ze1bpaccr01-amt_base = gdetail-amount.&lt;/P&gt;&lt;P&gt;            condense ze1bpaccr01-amt_base.&lt;/P&gt;&lt;P&gt;         concatenate '-' ze1bpaccr01-amt_base into ze1bpaccr01-amt_base.&lt;/P&gt;&lt;P&gt;          else.&lt;/P&gt;&lt;P&gt;            ze1bpaccr01-amt_base = gdetail-amount.&lt;/P&gt;&lt;P&gt;            condense ze1bpaccr01-amt_base.&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;        zedidd40-docnum          = wdocnum.&lt;/P&gt;&lt;P&gt;*After sort, segnum gets a new value according to config.&lt;/P&gt;&lt;P&gt;        zedidd40-segnum          = '999999'.&lt;/P&gt;&lt;P&gt;        zedidd40-segnam          = 'E1BPACCR01'.&lt;/P&gt;&lt;P&gt;        zedidd40-hlevel          = '02'.&lt;/P&gt;&lt;P&gt;        zedidd40-sdata           = ze1bpaccr01.&lt;/P&gt;&lt;P&gt;        append zedidd40.         " e1bpaccr01&lt;/P&gt;&lt;P&gt;      endif.    " end gdetail&lt;/P&gt;&lt;P&gt;    endif. "tx_write&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="---------------------" /&gt;SORT--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To have it the correct order according to config&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  sort zedidd40 by docnum segnum sdata(10).&lt;/P&gt;&lt;P&gt;  loop at zedidd40.&lt;/P&gt;&lt;P&gt;    if zedidd40-segnam &amp;lt;&amp;gt; 'E1BPACCR01' and&lt;/P&gt;&lt;P&gt;      zedidd40-segnam &amp;lt;&amp;gt; 'E1BPACTX01'.&lt;/P&gt;&lt;P&gt;      wsegnum = zedidd40-segnum.&lt;/P&gt;&lt;P&gt;      witemno = zedidd40-sdata(10).&lt;/P&gt;&lt;P&gt;      witemno_new = 0.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    if zedidd40-segnum = '999995'   "E1BPACTX01  gst&lt;/P&gt;&lt;P&gt;    or zedidd40-segnum = '999996'.  "E1BPACTX01  qst&lt;/P&gt;&lt;P&gt;      wsegnum = wsegnum + 1.&lt;/P&gt;&lt;P&gt;      zedidd40-segnum = wsegnum.&lt;/P&gt;&lt;P&gt;      witemno = witemno + 1.&lt;/P&gt;&lt;P&gt;      zedidd40-sdata(10) = witemno.&lt;/P&gt;&lt;P&gt;      modify zedidd40.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    if zedidd40-segnum &amp;gt; '999996'."E1BPACCR01 gl,then gst, then qst.&lt;/P&gt;&lt;P&gt;      wsegnum = wsegnum + 1.&lt;/P&gt;&lt;P&gt;      zedidd40-segnum = wsegnum.&lt;/P&gt;&lt;P&gt;      witemno_new = witemno_new + 1.&lt;/P&gt;&lt;P&gt;      zedidd40-sdata(10) = witemno_new.&lt;/P&gt;&lt;P&gt;      modify zedidd40.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="--------------------" /&gt;Idocs--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------" /&gt;&lt;P&gt;  if p_proc = 'X'.&lt;/P&gt;&lt;P&gt;    call function 'IDOC_INBOUND_ASYNCHRONOUS'&lt;/P&gt;&lt;P&gt;         tables&lt;/P&gt;&lt;P&gt;              idoc_control_rec_40 = zedidc40&lt;/P&gt;&lt;P&gt;              idoc_data_rec_40    = zedidd40.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  skip 2.&lt;/P&gt;&lt;P&gt;  write &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'Number of Idocs ', wdocnum.&lt;/P&gt;&lt;P&gt;endform.                    " proc_data&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 Jul 2008 06:16:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/idoc-s-inbound-code/m-p/4213162#M1006786</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-28T06:16:31Z</dc:date>
    </item>
  </channel>
</rss>

