Ver Mensaje Individual
  #1  
Viejo 02/04/08, 20:07:24
vcoll vcoll is offline
Junior Member
 
Fecha de Ingreso: feb 2006
Localización: Lima - Peru
Mensajes: 3
Post 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.
Responder Con Cita