#1
|
|||
|
|||
Bapi_po_create1
Hola Foro aca una consulta sobre esta bapi que me esta matando.
Resulta que necesito crear ordenes de servicio, los datos que ingreso me generan la orden de servicio pero necesito que ademas me cree una distribucion porcentual (tx me21n) por cuenta/orden este es el codigo que uso y me funciona pero necesito que me cree la distribucion porcentual con los datos que le doy(la tabla en la que la graba es ESKL). FORM CREAR_ORDEN_SERVICIO. DATA: w_poheader LIKE bapimepoheader, w_poheaderx LIKE bapimepoheaderx. DATA: gv_pedido LIKE bapimepoheader-po_number. DATA: poaccount LIKE bapimepoaccount OCCURS 0 WITH HEADER LINE, poaccountx LIKE bapimepoaccountx OCCURS 0 WITH HEADER LINE, po_item LIKE bapimepoitem OCCURS 0 WITH HEADER LINE, po_itemx LIKE bapimepoitemx OCCURS 0 WITH HEADER LINE, service LIKE bapiesllc OCCURS 0 WITH HEADER LINE, srvaccessvalues LIKE bapiesklc OCCURS 0 WITH HEADER LINE. W_TOTAL = 212. * Carga datos de Cabecera del pedido de Compra CLEAR w_poheader. w_poheader-doc_type = 'SV'. w_poheader-vendor = '2035639373'. "P_LIFNR. w_poheader-langu = 'EN'. w_poheader-purch_org = '2405'. "'101'. w_poheader-pur_group = '153'. "'043'. w_poheader-currency = 'PEN'. w_poheader-comp_code = '153'. "P_BUKRS. w_poheader-creat_date = sy-datum. w_poheader-created_by = 'STEFANINI'. * Marca los campos para que se tomen. CLEAR w_poheaderx. w_poheaderx-doc_type = 'X'. w_poheaderx-vendor = 'X'. w_poheaderx-purch_org = 'X'. w_poheaderx-pur_group = 'X'. w_poheaderx-currency = 'X'. w_poheaderx-comp_code = 'X'. w_poheaderx-creat_date = 'X'. w_poheaderx-created_by = 'X'. *Posiciones de pedido po_item-po_item = '10'. po_item-quantity = '1'. po_item-short_text = 'TEXTO TAXI'. po_item-acctasscat = 'F'. po_item-item_cat = 'F'. po_item-po_unit = 'EA'. po_item-matl_group = '774'. "'768'. po_item-plant = '3202'. "'0690'. po_item-quantity = '1' . po_item-conv_num1 = '1'. po_item-conv_den1 = '1'. po_item-price_unit = '1'. po_item-prnt_price = 'X'. po_item-unlimited_dlv = 'X'. po_item-gr_ind = 'X' . po_item-ir_ind = 'X' . po_item-gr_basediv = 'X'. po_item-pckg_no = '2748'. po_item-preq_name = sy-uname. APPEND po_item. CLEAR po_item. *Flags de Posiciones de pedido po_itemx-po_item = '10'. po_itemx-quantity = 'X'. po_itemx-short_text = 'X'. po_itemx-acctasscat = 'X'. po_itemx-item_cat = 'X'. po_itemX-po_unit = 'X'. po_itemx-matl_group = 'X'. po_itemx-plant = 'X'. po_itemx-quantity = 'X' . po_itemx-conv_num1 = 'X'. po_itemx-conv_den1 = 'X'. po_itemx-price_unit = 'X'. po_itemx-prnt_price = 'X'. po_itemx-unlimited_dlv = 'X'. po_itemx-gr_ind = 'X' . po_itemx-ir_ind = 'X' . po_itemx-gr_basediv = 'X'. po_itemx-pckg_no = 'X'. po_itemx-preq_name = 'X'. APPEND po_itemx. CLEAR po_itemx. *Imputacion de pedido poaccount-po_item = '10'. poaccount-serial_no = '01'. poaccount-creat_date = sy-datum . poaccount-gl_account = '0068101009'. poaccount-orderid = '000711000001'. APPEND poaccount. CLEAR poaccount. *Flags de imputacion poaccountx-po_item = '10'. poaccountx-po_itemx = 'X' . poaccountx-serial_no = 'X'. poaccountx-creat_date = 'X' . poaccountx-gl_account = 'X'. poaccountx-orderid = 'X'. APPEND poaccountx. CLEAR poaccountx. * Distribucion de imputacion srvaccessvalues-pckg_no = '0000002748'. srvaccessvalues-line_no = '0000000001' . srvaccessvalues-serno_line = '01'. srvaccessvalues-percentage = '50'. srvaccessvalues-serial_no = '01'. srvaccessvalues-NET_VALUE = '106'. srvaccessvalues-quantity = '106'. APPEND srvaccessvalues. CLEAR srvaccessvalues. srvaccessvalues-pckg_no = '0000002749'. srvaccessvalues-line_no = '0000000002' . srvaccessvalues-serno_line = '01'. srvaccessvalues-percentage = '25'. srvaccessvalues-serial_no = '01'. srvaccessvalues-NET_VALUE = '53'. srvaccessvalues-quantity = '53'. APPEND srvaccessvalues. CLEAR srvaccessvalues. srvaccessvalues-pckg_no = '0000002750'. srvaccessvalues-line_no = '0000000003' . srvaccessvalues-serno_line = '01'. srvaccessvalues-percentage = '25'. srvaccessvalues-serial_no = '01'. srvaccessvalues-NET_VALUE = '53'. srvaccessvalues-quantity = '53'. APPEND srvaccessvalues. CLEAR srvaccessvalues. * Servicios encabezado service-pckg_no = '2748'. service-line_no = '0000000001' . service-ext_line = '0000000000' . service-outl_level = '0'. service-outl_no = ' '. service-outl_ind = 'X'. service-subpckg_no = '2749'. service-edition = '0000' . service-ovf_tol = '0'. service-gr_price = '0'. service-from_line = '1'. service-DISTRIB = '2'. service-short_text = 'texto taxiXX'. APPEND service. CLEAR service. * servicio 1 asociado al encabezado service-pckg_no = '2749'. service-line_no = '0000000002' . service-ext_line = '10' . service-outl_level = '0'. service-subpckg_no = '0000000000'. service-edition = '0000' . service-base_uom = 'EA' . service-quantity = '1' . service-price_unit = '1' . service-ovf_tol = '0' . service-short_text = 'TEXTO TAXIAA'. service-gr_price = 212. service-matl_group = '768'. APPEND service. CLEAR service . DATA: return LIKE bapiret2 OCCURS 0 WITH HEADER LINE. DATA: purchaseorder LIKE BAPIMEPOHEADER-PO_NUMBER. *Creamos el Pedido de Servicio CALL FUNCTION 'BAPI_PO_CREATE1' EXPORTING poheader = w_poheader poheaderx = w_poheaderx no_price_from_po = 'X' IMPORTING exppurchaseorder = purchaseorder TABLES return = return poitem = po_item poitemx = po_itemx poaccount = poaccount poaccountx = poaccountx poservices = service posrvaccessvalues = srvaccessvalues. IF NOT purchaseorder IS INITIAL. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'. ENDIF. ENDFORM. |
#2
|
|||
|
|||
consulta
buenas, tu ejemplo cae preciso para lo que necesito, pero resulta que al ejecutarlo me indica como error que no hay código de material y no crea nada.... sabes por qué razón sucede esto?...
|
#3
|
|||
|
|||
donde esta el matnr ??? o sea el codigo de material ?
|
#4
|
|||
|
|||
buenas tardes señores... logré encontrarle solución al error... era referente al grupo de material de la línea de servicio, se estaba enviando mal a la BAPI, se mandaba el grupo de material de la cabecera... gracias!...
|
#5
|
|||
|
|||
Pregunta de donde sacas el pck-no?
gracias |
Herramientas | Buscar en Tema |
Desplegado | |
|
|