<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://sapwiki.cl/wiki/index.php?action=history&amp;feed=atom&amp;title=SAP_MM_BAPI_OC</id>
	<title>SAP MM BAPI OC - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://sapwiki.cl/wiki/index.php?action=history&amp;feed=atom&amp;title=SAP_MM_BAPI_OC"/>
	<link rel="alternate" type="text/html" href="https://sapwiki.cl/wiki/index.php?title=SAP_MM_BAPI_OC&amp;action=history"/>
	<updated>2026-10-26T12:07:13Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>https://sapwiki.cl/wiki/index.php?title=SAP_MM_BAPI_OC&amp;diff=491&amp;oldid=prev</id>
		<title>WikiSysop: /* Ejemplo 2, Crear orden de compra con referencia a una factura(al momento de crear factura) */</title>
		<link rel="alternate" type="text/html" href="https://sapwiki.cl/wiki/index.php?title=SAP_MM_BAPI_OC&amp;diff=491&amp;oldid=prev"/>
		<updated>2020-04-05T01:06:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Ejemplo 2, Crear orden de compra con referencia a una factura(al momento de crear factura)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;https://sapwiki.cl/wiki/index.php?title=SAP_MM_BAPI_OC&amp;amp;diff=491&amp;amp;oldid=490&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>https://sapwiki.cl/wiki/index.php?title=SAP_MM_BAPI_OC&amp;diff=490&amp;oldid=prev</id>
		<title>WikiSysop: /* Ejemplo 1 */</title>
		<link rel="alternate" type="text/html" href="https://sapwiki.cl/wiki/index.php?title=SAP_MM_BAPI_OC&amp;diff=490&amp;oldid=prev"/>
		<updated>2020-04-05T01:05:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Ejemplo 1&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;https://sapwiki.cl/wiki/index.php?title=SAP_MM_BAPI_OC&amp;amp;diff=490&amp;amp;oldid=385&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>https://sapwiki.cl/wiki/index.php?title=SAP_MM_BAPI_OC&amp;diff=385&amp;oldid=prev</id>
		<title>WikiSysop at 21:45, 4 April 2020</title>
		<link rel="alternate" type="text/html" href="https://sapwiki.cl/wiki/index.php?title=SAP_MM_BAPI_OC&amp;diff=385&amp;oldid=prev"/>
		<updated>2020-04-04T21:45:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 21:45, 4 April 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==BAPI_PO_CREATE1==  &lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==BAPI_PO_CREATE1==  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;* &lt;/del&gt;Ejemplo 1&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;===&lt;/ins&gt;Ejemplo 1&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  &amp;lt;nowiki&amp;gt; form crear_pedido CHANGING p_oc.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  &amp;lt;nowiki&amp;gt; form crear_pedido CHANGING p_oc.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  *  Rutina que crea los pedidos de traslado (ME21N)&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  *  Rutina que crea los pedidos de traslado (ME21N)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l143&quot; &gt;Line 143:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 143:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ENDFORM.&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ENDFORM.&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;*&lt;/del&gt;Ejemplo 2, Crear orden de compra con referencia a una factura(al momento de crear factura)&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;===&lt;/ins&gt;Ejemplo 2, Crear orden de compra con referencia a una factura(al momento de crear factura)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  *----------------------------------------------------------------------*&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  *----------------------------------------------------------------------*&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  *      Print of a invoice by SAPscript SMART FORMS               *&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  *      Print of a invoice by SAPscript SMART FORMS               *&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>https://sapwiki.cl/wiki/index.php?title=SAP_MM_BAPI_OC&amp;diff=384&amp;oldid=prev</id>
		<title>WikiSysop: Created page with &quot;==BAPI_PO_CREATE1==  * Ejemplo 1  &lt;nowiki&gt; form crear_pedido CHANGING p_oc.  *  Rutina que crea los pedidos de traslado (ME21N)      DATA: ls_header     TYPE bapimepoheader,...&quot;</title>
		<link rel="alternate" type="text/html" href="https://sapwiki.cl/wiki/index.php?title=SAP_MM_BAPI_OC&amp;diff=384&amp;oldid=prev"/>
		<updated>2020-04-04T21:44:53Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==BAPI_PO_CREATE1==  * Ejemplo 1  &amp;lt;nowiki&amp;gt; form crear_pedido CHANGING p_oc.  *  Rutina que crea los pedidos de traslado (ME21N)      DATA: ls_header     TYPE bapimepoheader,...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==BAPI_PO_CREATE1== &lt;br /&gt;
* Ejemplo 1&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; form crear_pedido CHANGING p_oc.&lt;br /&gt;
 *  Rutina que crea los pedidos de traslado (ME21N)&lt;br /&gt;
 &lt;br /&gt;
   DATA: ls_header     TYPE bapimepoheader,&lt;br /&gt;
         ls_headerx    TYPE bapimepoheaderx,&lt;br /&gt;
         lt_items      TYPE STANDARD TABLE OF bapimepoitem,&lt;br /&gt;
         ls_items      TYPE bapimepoitem,&lt;br /&gt;
         lt_itemsx     TYPE STANDARD TABLE OF bapimepoitemx,&lt;br /&gt;
         ls_itemsx     TYPE bapimepoitemx,&lt;br /&gt;
         lt_schedules  TYPE STANDARD TABLE OF bapimeposchedule,&lt;br /&gt;
         ls_schedules  TYPE bapimeposchedule,&lt;br /&gt;
         lt_schedulesx TYPE STANDARD TABLE OF bapimeposchedulx,&lt;br /&gt;
         ls_schedulesx TYPE bapimeposchedulx,&lt;br /&gt;
         lt_return     TYPE TABLE OF bapiret2,&lt;br /&gt;
         ls_return     TYPE bapiret2,&lt;br /&gt;
         l_item_idx    TYPE I,&lt;br /&gt;
         l_numped      TYPE bapiekkoc-po_number.&lt;br /&gt;
 &lt;br /&gt;
   CLEAR: ls_header,&lt;br /&gt;
          ls_headerx.&lt;br /&gt;
 &lt;br /&gt;
   ls_header-doc_type   = &amp;#039;ZXXX&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
   SELECT SINGLE EKORG EKGRP BUKRS lifnr INTO&lt;br /&gt;
   (ls_header-purch_org,ls_header-pur_group,ls_header-comp_code,ls_header-VENDOR)&lt;br /&gt;
   FROM ekko WHERE ebeln = wa_data-zzcontrato.&lt;br /&gt;
 &lt;br /&gt;
   ls_header-suppl_plnt = wa_data-werks_ori.&lt;br /&gt;
   ls_header-doc_date   = sy-datum.&lt;br /&gt;
   ls_header-REF_1      = wa_data-vbeln.&lt;br /&gt;
 &lt;br /&gt;
   ls_headerx-doc_type   = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_headerx-purch_org  = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_headerx-pur_group  = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_headerx-comp_code  = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_headerx-suppl_plnt = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_headerx-doc_date   = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_headerX-REF_1      = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_headerX-VENDOR     = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 *Grabamos las tablas correspondientes a los materiales y repartos&lt;br /&gt;
   l_item_idx          = wa_data-posnr.&lt;br /&gt;
   ls_items-po_item    = l_item_idx.&lt;br /&gt;
   ls_items-material   = wa_data-matnr.&lt;br /&gt;
   ls_items-plant      = wa_data-werks_sumi.&lt;br /&gt;
   ls_items-stge_loc   = wa_data-lgort_sumi.&lt;br /&gt;
 *ls_items-item_cat    = &amp;#039;7&amp;#039;.&lt;br /&gt;
   ls_items-po_unit    = wa_data-VRKME.&lt;br /&gt;
   ls_items-TRACKINGNO = wa_data-posnr.  &amp;quot;wa_data-vbeln.   &amp;quot;N° necesidad&lt;br /&gt;
   ls_items-QUANTITY   = wa_data-KWMENG.&lt;br /&gt;
 &lt;br /&gt;
   ls_items-agreement  = wa_data-zzcontrato.&lt;br /&gt;
   select SINGLE * into @data(ls_ekpo) from ekpo&lt;br /&gt;
                                where ebeln = @wa_data-zzcontrato&lt;br /&gt;
                                  and LOEKZ &amp;lt;&amp;gt; &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_items-agmt_item = ls_ekpo-ebelp.&lt;br /&gt;
 &lt;br /&gt;
   select SINGLE NETWR INTO ls_items-net_price from vbap&lt;br /&gt;
                                where vbeln = wa_data-vbeln and&lt;br /&gt;
                                      posnr = wa_data-posnr.&lt;br /&gt;
 *ls_items-no_rounding = &amp;#039;X&amp;#039;.&lt;br /&gt;
   APPEND ls_items TO lt_items.&lt;br /&gt;
 &lt;br /&gt;
   ls_itemsx-po_item     = l_item_idx.&lt;br /&gt;
   ls_itemsx-po_itemx    = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_itemsx-material    = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_itemsx-plant       = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_itemsx-stge_loc    = &amp;#039;X&amp;#039;.&lt;br /&gt;
 *ls_itemsx-item_cat    = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_itemsx-po_unit     = &amp;#039;X&amp;#039;.&lt;br /&gt;
 *ls_itemsx-no_rounding = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_itemsx-TRACKINGNO  = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_itemsX-QUANTITY    = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_itemsX-agreement   = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_itemsX-agmt_item   = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_itemsX-net_price   = &amp;#039;X&amp;#039;.&lt;br /&gt;
   APPEND ls_itemsx TO lt_itemsx.&lt;br /&gt;
 &lt;br /&gt;
   ls_schedules-po_item       = l_item_idx.&lt;br /&gt;
   ls_schedules-quantity      = wa_data-KWMENG.&lt;br /&gt;
   ls_schedules-delivery_date = wa_data-edatu.&lt;br /&gt;
   APPEND ls_schedules TO lt_schedules.&lt;br /&gt;
 &lt;br /&gt;
   ls_schedulesx-po_item       = l_item_idx.&lt;br /&gt;
   ls_schedulesx-po_itemx      = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_schedulesx-quantity      = &amp;#039;X&amp;#039;.&lt;br /&gt;
   ls_schedulesx-delivery_date = &amp;#039;X&amp;#039;.&lt;br /&gt;
   APPEND ls_schedulesx TO lt_schedulesx.&lt;br /&gt;
 &lt;br /&gt;
 * Llamamos a la BAPI para crear el pedido de traslados&lt;br /&gt;
   CALL FUNCTION &amp;#039;BAPI_PO_CREATE1&amp;#039;&lt;br /&gt;
   EXPORTING&lt;br /&gt;
     poheader               = ls_header&lt;br /&gt;
     poheaderx              = ls_headerx&lt;br /&gt;
   IMPORTING&lt;br /&gt;
     exppurchaseorder       = l_numped&lt;br /&gt;
   TABLES&lt;br /&gt;
     RETURN                 = lt_return&lt;br /&gt;
     poitem                 = lt_items&lt;br /&gt;
     poitemx                = lt_itemsx&lt;br /&gt;
     poschedule             = lt_schedules&lt;br /&gt;
     poschedulex            = lt_schedulesx&lt;br /&gt;
     .&lt;br /&gt;
 &lt;br /&gt;
   if l_numped is INITIAL.&lt;br /&gt;
 * error&lt;br /&gt;
    LOOP AT lt_return INTO ls_return&lt;br /&gt;
     GROUP BY COND string( WHEN ls_return-type = &amp;#039;E&amp;#039; THEN |EQ 1|&lt;br /&gt;
                           WHEN ls_return-type = &amp;#039;A&amp;#039; THEN |EQ 2|&lt;br /&gt;
                           WHEN ls_return-type = &amp;#039;W&amp;#039; THEN |EQ 3|&lt;br /&gt;
                           WHEN ls_return-type = &amp;#039;I&amp;#039; THEN |EQ 4|&lt;br /&gt;
                           )&lt;br /&gt;
               ASCENDING&lt;br /&gt;
               ASSIGNING FIELD-SYMBOL(&amp;lt;group&amp;gt;).&lt;br /&gt;
      LOOP AT GROUP &amp;lt;group&amp;gt; ASSIGNING FIELD-SYMBOL(&amp;lt;ls_return&amp;gt;).&lt;br /&gt;
      ENDLOOP.&lt;br /&gt;
      EXIT.&lt;br /&gt;
    ENDLOOP.&lt;br /&gt;
    IF sy-subrc = 0.&lt;br /&gt;
       move &amp;lt;ls_return&amp;gt;-message to g_message.&lt;br /&gt;
       PERFORM add_news USING &amp;#039;Crear Pedido:&amp;#039; icon_red_light.&lt;br /&gt;
       wa_data-stat =  icon_red_light.&lt;br /&gt;
    ENDIF.&lt;br /&gt;
   else.&lt;br /&gt;
 * éxito&lt;br /&gt;
       CALL FUNCTION &amp;#039;BAPI_TRANSACTION_COMMIT&amp;#039;&lt;br /&gt;
       EXPORTING&lt;br /&gt;
         WAIT = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
       p_oc = l_numped.&lt;br /&gt;
 &lt;br /&gt;
 * Pedido grabado correctamente, lo informamos en el log&lt;br /&gt;
         MESSAGE i000(0K) WITH &amp;#039;Pedido grabado correctamente&amp;#039; l_numped INTO g_message.&lt;br /&gt;
         PERFORM add_news USING &amp;#039;Crear Pedido:&amp;#039; icon_green_light.&lt;br /&gt;
         wa_data-stat =  icon_green_light.&lt;br /&gt;
   endif.&lt;br /&gt;
 &lt;br /&gt;
   CLEAR: lt_items, lt_schedules, lt_itemsx, lt_schedulesx.&lt;br /&gt;
   REFRESH: lt_items, lt_schedules, lt_itemsx, lt_schedulesx.&lt;br /&gt;
 &lt;br /&gt;
 ENDFORM.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ejemplo 2, Crear orden de compra con referencia a una factura(al momento de crear factura)&lt;br /&gt;
 *----------------------------------------------------------------------*&lt;br /&gt;
 *      Print of a invoice by SAPscript SMART FORMS               *&lt;br /&gt;
 *----------------------------------------------------------------------*&lt;br /&gt;
 &lt;br /&gt;
 REPORT zsd_crear_pcompra.&lt;br /&gt;
 &lt;br /&gt;
 * declaration of data&lt;br /&gt;
 INCLUDE rlb_invoice_data_declare.&lt;br /&gt;
 * definition of forms&lt;br /&gt;
 INCLUDE rlb_invoice_form01.&lt;br /&gt;
 INCLUDE rlb_print_forms.&lt;br /&gt;
 &lt;br /&gt;
 *---------------------------------------------------------------------*&lt;br /&gt;
 *       FORM ENTRY&lt;br /&gt;
 *---------------------------------------------------------------------*&lt;br /&gt;
 FORM entry USING return_code us_screen.&lt;br /&gt;
 &lt;br /&gt;
   DATA: lf_retcode TYPE sy-subrc.&lt;br /&gt;
   CLEAR retcode.&lt;br /&gt;
   xscreen = us_screen.&lt;br /&gt;
   PERFORM processing USING us_screen&lt;br /&gt;
                      CHANGING lf_retcode.&lt;br /&gt;
   IF lf_retcode NE 0.&lt;br /&gt;
     return_code = 1.&lt;br /&gt;
   ELSE.&lt;br /&gt;
     return_code = 0.&lt;br /&gt;
   ENDIF.&lt;br /&gt;
 &lt;br /&gt;
 ENDFORM.                    &amp;quot;ENTRY&lt;br /&gt;
 *---------------------------------------------------------------------*&lt;br /&gt;
 *       FORM PROCESSING                                               *&lt;br /&gt;
 *---------------------------------------------------------------------*&lt;br /&gt;
 FORM processing USING proc_screen&lt;br /&gt;
                 CHANGING cf_retcode.&lt;br /&gt;
 &lt;br /&gt;
   DATA: ls_print_data_to_read TYPE lbbil_print_data_to_read.&lt;br /&gt;
   DATA: ls_bil_invoice TYPE lbbil_invoice.&lt;br /&gt;
   DATA: lf_fm_name            TYPE rs38l_fnam.&lt;br /&gt;
   DATA: ls_control_param      TYPE ssfctrlop.&lt;br /&gt;
   DATA: ls_composer_param     TYPE ssfcompop.&lt;br /&gt;
   DATA: ls_recipient          TYPE swotobjid.&lt;br /&gt;
   DATA: ls_sender             TYPE swotobjid.&lt;br /&gt;
   DATA: lf_formname           TYPE tdsfname.&lt;br /&gt;
   DATA: ls_addr_key           LIKE addr_key.&lt;br /&gt;
   DATA: ls_dlv-land           LIKE vbrk-land1.&lt;br /&gt;
   DATA: ls_job_info           TYPE ssfcrescl.&lt;br /&gt;
 &lt;br /&gt;
    DATA ld_vbeln LIKE vbrk-vbeln.&lt;br /&gt;
 &lt;br /&gt;
 * SmartForm from customizing table TNAPR&lt;br /&gt;
   lf_formname = tnapr-sform.&lt;br /&gt;
 &lt;br /&gt;
   IF nast-objky+10 NE space.&lt;br /&gt;
     nast-objky = nast-objky+16(10).&lt;br /&gt;
   ELSE.&lt;br /&gt;
     nast-objky = nast-objky.&lt;br /&gt;
   ENDIF.&lt;br /&gt;
 &lt;br /&gt;
   ld_vbeln = nast-objky.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 *  IF cf_retcode = 0.&lt;br /&gt;
     CALL FUNCTION &amp;#039;Z_MM_BAPI_PO_CREATE1&amp;#039; in BACKGROUND TASK&lt;br /&gt;
 *    AS SEPARATE UNIT DESTINATION &amp;#039;NONE&amp;#039;&lt;br /&gt;
       EXPORTING&lt;br /&gt;
         I_VBELN       = ld_vbeln&lt;br /&gt;
         i_nast        = nast&lt;br /&gt;
 *     IMPORTING&lt;br /&gt;
 *       O_EBELN       =&lt;br /&gt;
               .&lt;br /&gt;
 *  ENDIF.&lt;br /&gt;
 &lt;br /&gt;
 * get SmartForm protocoll and store it in the NAST protocoll&lt;br /&gt;
 * PERFORM ADD_SMFRM_PROT.&lt;br /&gt;
 &lt;br /&gt;
 * get SmartForm protocoll and store it in the NAST protocoll&lt;br /&gt;
 * PERFORM ADD_SMFRM_PROT.&lt;br /&gt;
 &lt;br /&gt;
 ENDFORM.                    &amp;quot;PROCESSING&lt;br /&gt;
 &lt;br /&gt;
 FUNCTION Z_MM_BAPI_PO_CREATE1.&lt;br /&gt;
 *&amp;quot;----------------------------------------------------------------------&lt;br /&gt;
 *&amp;quot;*&amp;quot;Interfase local&lt;br /&gt;
 *&amp;quot;  IMPORTING&lt;br /&gt;
 *&amp;quot;     VALUE(I_VBELN) TYPE  VBRK-VBELN&lt;br /&gt;
 *&amp;quot;     VALUE(I_NAST) TYPE  NAST OPTIONAL&lt;br /&gt;
 *&amp;quot;  EXPORTING&lt;br /&gt;
 *&amp;quot;     VALUE(O_EBELN) TYPE  EKKO-EBELN&lt;br /&gt;
 *&amp;quot;  EXCEPTIONS&lt;br /&gt;
 *&amp;quot;      DOC_NO_EXISTE&lt;br /&gt;
 *&amp;quot;----------------------------------------------------------------------&lt;br /&gt;
   data ls_knmt type knmt.&lt;br /&gt;
   data ld_AMOUNT_EXTERNAL LIKE  BAPICURR-BAPICURR.&lt;br /&gt;
 &lt;br /&gt;
   nast = i_nast.&lt;br /&gt;
 &lt;br /&gt;
   select single * into gs_vbrk from vbrk where vbeln = i_vbeln.&lt;br /&gt;
   if sy-subrc &amp;lt;&amp;gt; 0.&lt;br /&gt;
     if nast is NOT INITIAL.&lt;br /&gt;
       CLEAR : syst-msgv1, syst-msgv2, syst-msgv3.&lt;br /&gt;
       CALL FUNCTION &amp;#039;NAST_PROTOCOL_INITIALIZE&amp;#039;.&lt;br /&gt;
       sy-msgid = &amp;#039;VN&amp;#039;.&lt;br /&gt;
       sy-msgno = &amp;#039;056&amp;#039;.&lt;br /&gt;
       sy-msgty = &amp;#039;I&amp;#039;.&lt;br /&gt;
       sy-msgv1 = &amp;#039;ZSD_CREAR_PCOMPRA&amp;#039;  .&lt;br /&gt;
       sy-msgv2 = &amp;#039;ENTRY&amp;#039;.&lt;br /&gt;
       CALL FUNCTION &amp;#039;NAST_PROTOCOL_UPDATE&amp;#039;&lt;br /&gt;
         EXPORTING&lt;br /&gt;
           msg_arbgb = sy-msgid&lt;br /&gt;
           msg_nr    = sy-msgno&lt;br /&gt;
           msg_ty    = sy-msgty&lt;br /&gt;
           msg_v1    = sy-msgv1&lt;br /&gt;
           msg_v2    = sy-msgv2&lt;br /&gt;
         EXCEPTIONS&lt;br /&gt;
           OTHERS    = 0.&lt;br /&gt;
       CLEAR : syst-msgv1, syst-msgv2, syst-msgv3.&lt;br /&gt;
       syst-msgid = &amp;#039;VF&amp;#039;.&lt;br /&gt;
       syst-msgno = &amp;#039;041&amp;#039;.&lt;br /&gt;
       syst-msgty = &amp;#039;E&amp;#039;.&lt;br /&gt;
       syst-msgv1 = i_vbeln.&lt;br /&gt;
       CALL FUNCTION &amp;#039;NAST_PROTOCOL_UPDATE&amp;#039;&lt;br /&gt;
         EXPORTING&lt;br /&gt;
           msg_arbgb = syst-msgid&lt;br /&gt;
           msg_nr    = syst-msgno&lt;br /&gt;
           msg_ty    = syst-msgty&lt;br /&gt;
           msg_v1    = syst-msgv1&lt;br /&gt;
           msg_v2    = syst-msgv2&lt;br /&gt;
           msg_v3    = syst-msgv3&lt;br /&gt;
         EXCEPTIONS&lt;br /&gt;
           OTHERS    = 1.&lt;br /&gt;
       NAST-VSTAT = &amp;#039;2&amp;#039;.&lt;br /&gt;
       PERFORM protocol_store USING    nast-kappl&lt;br /&gt;
                                 nast-kschl&lt;br /&gt;
                        CHANGING nast-cmfpnr.&lt;br /&gt;
       PERFORM nast_update.&lt;br /&gt;
       COMMIT WORK AND WAIT.&lt;br /&gt;
     endif.&lt;br /&gt;
     RAISE doc_no_existe.&lt;br /&gt;
   endif.&lt;br /&gt;
 &lt;br /&gt;
   if gs_vbrk-FKSTO = &amp;#039;X&amp;#039;.&lt;br /&gt;
     if nast is NOT INITIAL.&lt;br /&gt;
       CLEAR : syst-msgv1, syst-msgv2, syst-msgv3.&lt;br /&gt;
       CALL FUNCTION &amp;#039;NAST_PROTOCOL_INITIALIZE&amp;#039;.&lt;br /&gt;
       sy-msgid = &amp;#039;VN&amp;#039;.&lt;br /&gt;
       sy-msgno = &amp;#039;056&amp;#039;.&lt;br /&gt;
       sy-msgty = &amp;#039;I&amp;#039;.&lt;br /&gt;
       sy-msgv1 = &amp;#039;ZSD_CREAR_PCOMPRA&amp;#039;  .&lt;br /&gt;
       sy-msgv2 = &amp;#039;ENTRY&amp;#039;.&lt;br /&gt;
       CALL FUNCTION &amp;#039;NAST_PROTOCOL_UPDATE&amp;#039;&lt;br /&gt;
         EXPORTING&lt;br /&gt;
           msg_arbgb = sy-msgid&lt;br /&gt;
           msg_nr    = sy-msgno&lt;br /&gt;
           msg_ty    = sy-msgty&lt;br /&gt;
           msg_v1    = sy-msgv1&lt;br /&gt;
           msg_v2    = sy-msgv2&lt;br /&gt;
         EXCEPTIONS&lt;br /&gt;
           OTHERS    = 0.&lt;br /&gt;
       CLEAR : syst-msgv1, syst-msgv2, syst-msgv3.&lt;br /&gt;
       syst-msgid = &amp;#039;VF&amp;#039;.&lt;br /&gt;
       syst-msgno = &amp;#039;041&amp;#039;.&lt;br /&gt;
       syst-msgty = &amp;#039;E&amp;#039;.&lt;br /&gt;
       syst-msgv1 = &amp;#039;Factura está anulada&amp;#039;.&lt;br /&gt;
       CALL FUNCTION &amp;#039;NAST_PROTOCOL_UPDATE&amp;#039;&lt;br /&gt;
         EXPORTING&lt;br /&gt;
           msg_arbgb = syst-msgid&lt;br /&gt;
           msg_nr    = syst-msgno&lt;br /&gt;
           msg_ty    = syst-msgty&lt;br /&gt;
           msg_v1    = syst-msgv1&lt;br /&gt;
           msg_v2    = syst-msgv2&lt;br /&gt;
           msg_v3    = syst-msgv3&lt;br /&gt;
         EXCEPTIONS&lt;br /&gt;
           OTHERS    = 1.&lt;br /&gt;
       NAST-VSTAT = &amp;#039;2&amp;#039;.&lt;br /&gt;
       PERFORM protocol_store USING    nast-kappl&lt;br /&gt;
                                 nast-kschl&lt;br /&gt;
                        CHANGING nast-cmfpnr.&lt;br /&gt;
       PERFORM nast_update.&lt;br /&gt;
       COMMIT WORK AND WAIT.&lt;br /&gt;
     endif.&lt;br /&gt;
     RAISE doc_no_existe.&lt;br /&gt;
   endif.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
   select * into table gt_vbrp from vbrp where vbeln = i_vbeln.&lt;br /&gt;
 &lt;br /&gt;
   read TABLE gt_vbrp into gs_VBRP index 1.&lt;br /&gt;
 *--------------------------------------------------------------------*&lt;br /&gt;
 * datos cabecera&lt;br /&gt;
 *--------------------------------------------------------------------*&lt;br /&gt;
   CLEAR: gs_poheader,&lt;br /&gt;
          gs_poheaderx.&lt;br /&gt;
 &lt;br /&gt;
 *---- Clase Documento&lt;br /&gt;
   gs_poheader-doc_type  = &amp;#039;ZCAD&amp;#039;.&lt;br /&gt;
   gs_poheaderx-doc_type = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 *---- Proveedor&lt;br /&gt;
   select single EIKTO into gs_poheader-VENDOR from KNVV&lt;br /&gt;
                 where KUNNR = gs_VBRK-KUNRG&lt;br /&gt;
                 and VKORG = gs_VBRK-VKORG&lt;br /&gt;
                 and VTWEG = gs_VBRK-VTWEG&lt;br /&gt;
                 and SPART = gs_VBRK-SPART.&lt;br /&gt;
 *  gs_poheader-VENDOR     = gs_vbrk-kunrg.&lt;br /&gt;
 *  gs_poheader-VENDOR     = &amp;#039;COMPANY&amp;#039;.&lt;br /&gt;
   gs_poheaderx-VENDOR    = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 ****FECHA CREACION&lt;br /&gt;
   gs_poheader-CREAT_DATE   = gs_VBRP-PRSDT.&lt;br /&gt;
   gs_poheaderx-CREAT_DATE = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 *---- Org. de Compra&lt;br /&gt;
   gs_poheader-purch_org  = &amp;#039;OCCA&amp;#039;.&lt;br /&gt;
   gs_poheaderx-purch_org = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 *---- Grupo de Compra&lt;br /&gt;
   gs_poheader-PUR_GROUP   = &amp;#039;C15&amp;#039;.&lt;br /&gt;
   gs_poheaderx-PUR_GROUP  = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 *---- Sociedad&lt;br /&gt;
   gs_poheader-comp_code  = &amp;#039;8000&amp;#039;.&lt;br /&gt;
   gs_poheaderx-comp_code = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 ****tipo de cambio&lt;br /&gt;
   gs_poheader-EXCH_RATE   = gs_VBRK-KURRF.&lt;br /&gt;
   gs_poheaderx-EXCH_RATE = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 ****tipo de cambio fijado&lt;br /&gt;
   gs_poheader-EX_RATE_FX  = &amp;#039;X&amp;#039;. &amp;quot;gs_VBRK-CPKUR.&lt;br /&gt;
   gs_poheaderx-EX_RATE_FX = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 ****factura&lt;br /&gt;
   gs_poheader-COLLECT_NO = gs_VBRK-VBELN.&lt;br /&gt;
   gs_poheaderx-collect_no = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 ****moneda&lt;br /&gt;
   gs_poheader-CURRENCY = gs_VBRK-waerk.&lt;br /&gt;
   gs_poheaderx-CURRENCY = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 ****fecha documento&lt;br /&gt;
   gs_poheader-DOC_DATE = gs_VBRP-PRSDT.&lt;br /&gt;
   gs_poheaderx-doc_date = &amp;#039;X&amp;#039;.&lt;br /&gt;
 *--------------------------------------------------------------------*&lt;br /&gt;
 * datos posición&lt;br /&gt;
 *--------------------------------------------------------------------*&lt;br /&gt;
   CLEAR  : gt_poitem[],&lt;br /&gt;
            gt_poitemx[],&lt;br /&gt;
            gt_POSCHEDULE[],&lt;br /&gt;
            gt_POSCHEDULEx[],&lt;br /&gt;
            gt_POACCOUNT[],&lt;br /&gt;
            gt_POACCOUNTx[],&lt;br /&gt;
            gt_return[].&lt;br /&gt;
 &lt;br /&gt;
 *---- Actualizar posiciones del documento&lt;br /&gt;
   LOOP AT gt_vbrp INTO gs_vbrp.&lt;br /&gt;
     clear: gs_poitemx,&lt;br /&gt;
            gs_poitem,&lt;br /&gt;
            gs_POSCHEDULE,&lt;br /&gt;
            gs_POSCHEDULEx,&lt;br /&gt;
            gs_POACCOUNT,&lt;br /&gt;
            gs_POACCOUNTx,&lt;br /&gt;
            ls_knmt.&lt;br /&gt;
 &lt;br /&gt;
 *---- Posición&lt;br /&gt;
     gs_poitem-po_item   = gs_VBRP-POSNR.&lt;br /&gt;
     gs_poitemx-po_item  = gs_VBRP-POSNR.&lt;br /&gt;
     gs_poitemx-po_itemx = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
     gs_POSCHEDULE-po_item = gs_VBRP-POSNR.&lt;br /&gt;
     gs_POSCHEDULEx-po_item = gs_VBRP-POSNR.&lt;br /&gt;
     gs_POSCHEDULEx-po_itemx = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
     gs_POACCOUNT-po_item =  gs_VBRP-POSNR.&lt;br /&gt;
     gs_POACCOUNTx-po_item = gs_VBRP-POSNR.&lt;br /&gt;
     gs_POACCOUNTx-po_itemx = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 *---- Material&lt;br /&gt;
     SELECT single * into ls_knmt FROM  knmt&lt;br /&gt;
            WHERE  vkorg  = gs_vbrk-vkorg&lt;br /&gt;
            AND    vtweg  = gs_vbrk-vtweg&lt;br /&gt;
            AND    kunnr  = gs_vbrk-kunrg&lt;br /&gt;
            AND    matnr  = gs_vbrp-matnr.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
     CALL FUNCTION &amp;#039;CONVERSION_EXIT_MATN1_INPUT&amp;#039;&lt;br /&gt;
       EXPORTING&lt;br /&gt;
         input        = ls_knmt-KDMAT&lt;br /&gt;
       IMPORTING&lt;br /&gt;
         output       = gs_poitem-material&lt;br /&gt;
       EXCEPTIONS&lt;br /&gt;
         length_error = 1&lt;br /&gt;
         OTHERS       = 2.&lt;br /&gt;
 &lt;br /&gt;
 ** tipo imputacion&lt;br /&gt;
     case ls_knmt-VWPOS.&lt;br /&gt;
       when &amp;#039;ZK&amp;#039;.&amp;quot;Centro de costo&lt;br /&gt;
         gs_poitem-ACCTASSCAT  = &amp;#039;J&amp;#039;.&lt;br /&gt;
         data: v_tabla like ausp occurs 0 with header line, &amp;quot;v_tabla TYPE TABLE OF ausp,&lt;br /&gt;
               v_OBJECT like KSSK-OBJEK.&lt;br /&gt;
         move gs_poitem-material to v_OBJECT.&lt;br /&gt;
         CALL FUNCTION &amp;#039;CLA2_GET_ALL_ALLOCATIONS&amp;#039;&lt;br /&gt;
           EXPORTING&lt;br /&gt;
             OBJECT                   = v_OBJECT&lt;br /&gt;
             CLASS_TYPE               = &amp;#039;001&amp;#039;&lt;br /&gt;
             ALLOC_ID                 = &amp;#039;O&amp;#039;&lt;br /&gt;
             TABLE                    = &amp;#039;MARA&amp;#039;&lt;br /&gt;
            KEY_DATE                 = SY-DATUM&lt;br /&gt;
           TABLES&lt;br /&gt;
            VALUES                   = v_tabla&lt;br /&gt;
 *           ALLOCATIONS              =&lt;br /&gt;
 *         EXCEPTIONS&lt;br /&gt;
 *           INVALID_CLASS_TYPE       = 1&lt;br /&gt;
 *           INVALID_OBJECT           = 2&lt;br /&gt;
 *           OTHERS                   = 3&lt;br /&gt;
 .&lt;br /&gt;
         IF SY-SUBRC = 0.&lt;br /&gt;
           read TABLE v_tabla WITH KEY ATINN = &amp;#039;ZMAT_CECO_CCNI&amp;#039;.&lt;br /&gt;
           data V_CECO(10) type N.&lt;br /&gt;
           move V_TABLA-ATWRT to V_CECO.&lt;br /&gt;
           gs_POACCOUNT-COSTCENTER = V_CECO.&lt;br /&gt;
 *         move V_TABLA-ATWRT to gs_POACCOUNT-COSTCENTER.&lt;br /&gt;
 *         gs_POACCOUNT-COSTCENTER = &amp;#039;0080100100&amp;#039;.&lt;br /&gt;
           gs_POACCOUNTx-COSTCENTER = &amp;#039;X&amp;#039;.&lt;br /&gt;
         ENDIF.&lt;br /&gt;
       when &amp;#039;ZP&amp;#039;.&amp;quot;Elemento PEP&lt;br /&gt;
         gs_poitem-ACCTASSCAT  = &amp;#039;X&amp;#039;.&lt;br /&gt;
         data V_IHREZ like vbkd-IHREZ.&lt;br /&gt;
         select single IHREZ into V_IHREZ from vbkd&lt;br /&gt;
           where VBELN = GS_VBRP-AUBEL&lt;br /&gt;
           and POSNR = GS_VBRP-AUPOS.&lt;br /&gt;
         if sy-subrc &amp;lt;&amp;gt; 0.&lt;br /&gt;
           select single IHREZ into V_IHREZ from vbkd&lt;br /&gt;
           where VBELN = GS_VBRP-AUBEL.&lt;br /&gt;
         endif.&lt;br /&gt;
         data: V_EQUNR(18) type N..&lt;br /&gt;
         move V_IHREZ to V_EQUNR.&lt;br /&gt;
 *        CONDENSE V_EQUNR.&lt;br /&gt;
         select single ZZPOSID into gs_POACCOUNT-WBS_ELEMENT from EQUI&lt;br /&gt;
           where EQUNR = V_EQUNR.&lt;br /&gt;
         gs_POACCOUNTx-WBS_ELEMENT = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
     endcase.&lt;br /&gt;
     gs_poitemx-ACCTASSCAT = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 *    gs_poitem-material  = ls_knmt-KDMAT.&lt;br /&gt;
     gs_poitemx-material = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 *---- Cantidad&lt;br /&gt;
     gs_poitem-quantity  = gs_VBRP-FKIMG.&lt;br /&gt;
     gs_poitemx-quantity = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 ***fecha entrega&lt;br /&gt;
     gs_POSCHEDULE-DELIVERY_DATE = gs_VBRP-PRSDT.&lt;br /&gt;
     gs_POSCHEDULEx-DELIVERY_DATE =  gs_VBRP-PRSDT.&lt;br /&gt;
 &lt;br /&gt;
 * monto neto&lt;br /&gt;
     CALL FUNCTION &amp;#039;BAPI_CURRENCY_CONV_TO_EXTERNAL&amp;#039;&lt;br /&gt;
       EXPORTING&lt;br /&gt;
         CURRENCY        = gs_vbrk-waerk&lt;br /&gt;
         AMOUNT_INTERNAL = gs_VBRP-NETWR&lt;br /&gt;
       IMPORTING&lt;br /&gt;
         AMOUNT_EXTERNAL = ld_AMOUNT_EXTERNAL.&lt;br /&gt;
     .&lt;br /&gt;
 &lt;br /&gt;
     move ld_AMOUNT_EXTERNAL to gs_poitem-NET_PRICE .&lt;br /&gt;
 *    gs_poitem-NET_PRICE    = gs_VBRP-NETWR.&lt;br /&gt;
     gs_poitemx-NET_PRICE   = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
     gs_poitem-PO_PRICE = &amp;#039;2&amp;#039;.&lt;br /&gt;
     gs_poitemx-PO_PRICE = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 *gs_poaccount-NET_VALUE =&lt;br /&gt;
 *gs_poaccountx-NET_VALUE =&lt;br /&gt;
 &lt;br /&gt;
 *---- Centro Destino&lt;br /&gt;
     gs_poitem-plant  = &amp;#039;CC04&amp;#039;.&lt;br /&gt;
     gs_poitemx-plant = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 *---- División&lt;br /&gt;
     gs_POACCOUNT-BUS_AREA  = &amp;#039;CL01&amp;#039;.&lt;br /&gt;
     gs_POACCOUNTx-BUS_AREA = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ***ind impuesto&lt;br /&gt;
     case gs_vbrk-FKART.&lt;br /&gt;
       when &amp;#039;ZFEA&amp;#039;.&lt;br /&gt;
         gs_poitem-TAX_CODE  = &amp;#039;A0&amp;#039;.&lt;br /&gt;
         gs_poitemx-TAX_CODE = &amp;#039;X&amp;#039;.&lt;br /&gt;
       when &amp;#039;ZFEN&amp;#039;.&lt;br /&gt;
         gs_poitem-TAX_CODE  = &amp;#039;E0&amp;#039;.&lt;br /&gt;
         gs_poitemx-TAX_CODE = &amp;#039;X&amp;#039;.&lt;br /&gt;
     endcase.&lt;br /&gt;
 &lt;br /&gt;
 * nro necesidad&lt;br /&gt;
     gs_poitem-TRACKINGNO = gs_VBRP-vbelv.&lt;br /&gt;
     gs_poitemx-TRACKINGNO = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 * Verif MIGO&lt;br /&gt;
     gs_poitem-GR_BASEDIV  = space.&lt;br /&gt;
     gs_poitemx-GR_BASEDIV = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
 *---- Grabar Datos&lt;br /&gt;
     APPEND gs_poitem TO  gt_poitem.&lt;br /&gt;
     APPEND gs_poitemx TO gt_poitemx.&lt;br /&gt;
 &lt;br /&gt;
     append gs_POSCHEDULE to gt_POSCHEDULE.&lt;br /&gt;
     append gs_POSCHEDULEx to gt_POSCHEDULEx.&lt;br /&gt;
 &lt;br /&gt;
     append gs_POACCOUNT to gt_POACCOUNT.&lt;br /&gt;
     append gs_POACCOUNTx to gt_POACCOUNTx.&lt;br /&gt;
 &lt;br /&gt;
   ENDLOOP.&lt;br /&gt;
 &lt;br /&gt;
   CALL FUNCTION &amp;#039;BAPI_PO_CREATE1&amp;#039;&lt;br /&gt;
     EXPORTING&lt;br /&gt;
       poheader         = gs_poheader&lt;br /&gt;
       poheaderx        = gs_poheaderx&lt;br /&gt;
     IMPORTING&lt;br /&gt;
       exppurchaseorder = gd_ebeln&lt;br /&gt;
     TABLES&lt;br /&gt;
       return           = gt_return&lt;br /&gt;
       poitem           = gt_poitem&lt;br /&gt;
       poitemx          = gt_poitemx&lt;br /&gt;
       POSCHEDULE       = gt_POSCHEDULE&lt;br /&gt;
       POSCHEDULEx      = gt_POSCHEDULEx&lt;br /&gt;
       POACCOUNT        = gt_POACCOUNT&lt;br /&gt;
       POACCOUNTx       = gt_POACCOUNTx.&lt;br /&gt;
 &lt;br /&gt;
 *error&lt;br /&gt;
   LOOP AT gt_return  into gs_return WHERE type = &amp;#039;E&amp;#039;&lt;br /&gt;
                 OR type = &amp;#039;A&amp;#039;.&lt;br /&gt;
   ENDLOOP.&lt;br /&gt;
   IF sy-subrc = 0.&lt;br /&gt;
     if nast is NOT INITIAL.&lt;br /&gt;
       CLEAR : syst-msgv1, syst-msgv2, syst-msgv3.&lt;br /&gt;
       CALL FUNCTION &amp;#039;NAST_PROTOCOL_INITIALIZE&amp;#039;.&lt;br /&gt;
       sy-msgid = &amp;#039;VN&amp;#039;.&lt;br /&gt;
       sy-msgno = &amp;#039;056&amp;#039;.&lt;br /&gt;
       sy-msgty = &amp;#039;I&amp;#039;.&lt;br /&gt;
       sy-msgv1 = &amp;#039;ZSD_CREAR_PCOMPRA&amp;#039;  .&lt;br /&gt;
       sy-msgv2 = &amp;#039;ENTRY&amp;#039;.&lt;br /&gt;
       CALL FUNCTION &amp;#039;NAST_PROTOCOL_UPDATE&amp;#039;&lt;br /&gt;
         EXPORTING&lt;br /&gt;
           msg_arbgb = sy-msgid&lt;br /&gt;
           msg_nr    = sy-msgno&lt;br /&gt;
           msg_ty    = sy-msgty&lt;br /&gt;
           msg_v1    = sy-msgv1&lt;br /&gt;
           msg_v2    = sy-msgv2&lt;br /&gt;
         EXCEPTIONS&lt;br /&gt;
           OTHERS    = 0.&lt;br /&gt;
       CLEAR : syst-msgv1, syst-msgv2, syst-msgv3.&lt;br /&gt;
       syst-msgid = gs_return-id.&lt;br /&gt;
       syst-msgno = gs_return-number.&lt;br /&gt;
       syst-msgty = &amp;#039;E&amp;#039;.&lt;br /&gt;
       syst-msgv1 = gs_return-message_v1.&lt;br /&gt;
       syst-msgv2 = gs_return-message_v2.&lt;br /&gt;
       syst-msgv3 = gs_return-message_v3.&lt;br /&gt;
       syst-msgv4 = gs_return-message_v4.&lt;br /&gt;
       CALL FUNCTION &amp;#039;NAST_PROTOCOL_UPDATE&amp;#039;&lt;br /&gt;
         EXPORTING&lt;br /&gt;
           msg_arbgb = syst-msgid&lt;br /&gt;
           msg_nr    = syst-msgno&lt;br /&gt;
           msg_ty    = syst-msgty&lt;br /&gt;
           msg_v1    = syst-msgv1&lt;br /&gt;
           msg_v2    = syst-msgv2&lt;br /&gt;
           msg_v3    = syst-msgv3&lt;br /&gt;
         EXCEPTIONS&lt;br /&gt;
           OTHERS    = 1.&lt;br /&gt;
       NAST-VSTAT = &amp;#039;2&amp;#039;.&lt;br /&gt;
       PERFORM protocol_store USING    nast-kappl&lt;br /&gt;
                                 nast-kschl&lt;br /&gt;
                        CHANGING nast-cmfpnr.&lt;br /&gt;
       PERFORM nast_update.&lt;br /&gt;
       COMMIT WORK AND WAIT.&lt;br /&gt;
     endif.&lt;br /&gt;
     return.   &amp;quot;&amp;lt;------------------------&lt;br /&gt;
 &lt;br /&gt;
 *---- Grabar Documento&lt;br /&gt;
   elseIF ( NOT gd_ebeln IS INITIAL ).&lt;br /&gt;
     if nast is NOT INITIAL.&lt;br /&gt;
       CLEAR : syst-msgv1, syst-msgv2, syst-msgv3.&lt;br /&gt;
       CALL FUNCTION &amp;#039;NAST_PROTOCOL_INITIALIZE&amp;#039;.&lt;br /&gt;
       sy-msgid = &amp;#039;VN&amp;#039;.&lt;br /&gt;
       sy-msgno = &amp;#039;056&amp;#039;.&lt;br /&gt;
       sy-msgty = &amp;#039;S&amp;#039;.&lt;br /&gt;
       sy-msgv1 = &amp;#039;ZSD_CREAR_PCOMPRA&amp;#039;  .&lt;br /&gt;
       sy-msgv2 = &amp;#039;ENTRY&amp;#039;.&lt;br /&gt;
       CALL FUNCTION &amp;#039;NAST_PROTOCOL_UPDATE&amp;#039;&lt;br /&gt;
         EXPORTING&lt;br /&gt;
           msg_arbgb = sy-msgid&lt;br /&gt;
           msg_nr    = sy-msgno&lt;br /&gt;
           msg_ty    = sy-msgty&lt;br /&gt;
           msg_v1    = sy-msgv1&lt;br /&gt;
           msg_v2    = sy-msgv2&lt;br /&gt;
         EXCEPTIONS&lt;br /&gt;
           OTHERS    = 0.&lt;br /&gt;
       CLEAR : syst-msgv1, syst-msgv2, syst-msgv3,syst-msgv4.&lt;br /&gt;
       syst-msgid = &amp;#039;06&amp;#039;.&lt;br /&gt;
       syst-msgno = &amp;#039;017&amp;#039;.&lt;br /&gt;
       syst-msgty = &amp;#039;S&amp;#039;.&lt;br /&gt;
       syst-msgv1 = &amp;#039;PED.CCNI&amp;#039;.&lt;br /&gt;
       syst-msgv2 = gd_ebeln.&lt;br /&gt;
       CALL FUNCTION &amp;#039;NAST_PROTOCOL_UPDATE&amp;#039;&lt;br /&gt;
         EXPORTING&lt;br /&gt;
           msg_arbgb = syst-msgid&lt;br /&gt;
           msg_nr    = syst-msgno&lt;br /&gt;
           msg_ty    = syst-msgty&lt;br /&gt;
           msg_v1    = syst-msgv1&lt;br /&gt;
           msg_v2    = syst-msgv2&lt;br /&gt;
         EXCEPTIONS&lt;br /&gt;
           OTHERS    = 1.&lt;br /&gt;
       NAST-VSTAT = &amp;#039;1&amp;#039;.&lt;br /&gt;
       PERFORM protocol_store USING nast-kappl&lt;br /&gt;
                                    nast-kschl&lt;br /&gt;
                           CHANGING nast-cmfpnr.&lt;br /&gt;
       PERFORM nast_update.&lt;br /&gt;
     endif.&lt;br /&gt;
 &lt;br /&gt;
     CALL FUNCTION &amp;#039;BAPI_TRANSACTION_COMMIT&amp;#039;&lt;br /&gt;
       EXPORTING&lt;br /&gt;
         WAIT = &amp;#039;X&amp;#039;.&lt;br /&gt;
 &lt;br /&gt;
     o_ebeln = gd_ebeln.&lt;br /&gt;
   Endif.&lt;br /&gt;
 &lt;br /&gt;
 ENDFUNCTION.&lt;br /&gt;
 &lt;br /&gt;
 FORM PROTOCOL_STORE USING    VALUE(PI_KAPPL) LIKE NAST-KAPPL&lt;br /&gt;
                             VALUE(PI_KSCHL) LIKE NAST-KSCHL&lt;br /&gt;
                    CHANGING P_CMFPNR  LIKE NAST-CMFPNR.&lt;br /&gt;
  DATA: L_NAST_CMFPNR LIKE NAST-CMFPNR.&lt;br /&gt;
 * store protocol entries for this message type?&lt;br /&gt;
    CALL FUNCTION &amp;#039;NAST_PROTOCOL_STORE&amp;#039;&lt;br /&gt;
         IMPORTING&lt;br /&gt;
              MSG_CMFPNR         = L_NAST_CMFPNR&lt;br /&gt;
         EXCEPTIONS&lt;br /&gt;
              NO_PROTOCOL_UPDATE = 01.&lt;br /&gt;
    IF SY-SUBRC EQ 0.&lt;br /&gt;
      P_CMFPNR = L_NAST_CMFPNR.&lt;br /&gt;
    ENDIF.&lt;br /&gt;
 ENDFORM.&lt;br /&gt;
 &lt;br /&gt;
 FORM NAST_UPDATE .&lt;br /&gt;
    UPDATE NAST.&lt;br /&gt;
    IF SY-SUBRC NE 0.&lt;br /&gt;
      INSERT NAST.&lt;br /&gt;
      IF SY-SUBRC NE 0.&lt;br /&gt;
      ENDIF.&lt;br /&gt;
    ENDIF.&lt;br /&gt;
 ENDFORM.                    &amp;quot; NAST_UPDATE&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
</feed>