MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 12/06/06, 19:51:12
WgaviriaStuva WgaviriaStuva is offline
Junior Member
 
Fecha de Ingreso: jun 2006
Mensajes: 12
bapi_po_create

Estoy intentando crear una orden de compra de servicio, me esta dando muchos problemas ¿alguien tiene un ejemplo con este caso? .... gracias
Responder Con Cita
  #2  
Viejo 13/06/06, 20:34:50
Avatar de Carlos J. Ortega González
Carlos J. Ortega González Carlos J. Ortega González is offline
Junior Member
 
Fecha de Ingreso: jun 2006
Mensajes: 28
Smile

Este es parte de un código que yo utilice, espero té de una ayuda

Saludos
Carlos



*&---------------------------------------------------------------------*
*& Form f_genera_documentos
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_genera_documentos.

DATA: vl_lifnr(10) TYPE c,
vl_posnr(4) TYPE n,
vl_posnr_c(4) TYPE c.


* Se preparan las tablas para que los datos sean procesados por el BAPI
vl_lifnr = space.

WRITE sy-datum TO v_datum.

FREE: itab_doc_item,
itab_item_update,
itab_doc_sched,
itab_schd_update,
itab_doc_cond,
itab_cond_update,
wa_doc_header.

CLEAR: itab_doc_item,
itab_item_update,
itab_doc_sched,
itab_schd_update,
itab_doc_cond,
itab_cond_update,
wa_head_update.

* Se pobla las tablas para que los datos sean procesados por el BAPI
LOOP AT itab_layout.

IF vl_lifnr NE itab_layout-lifnr.

IF vl_lifnr NE space.
PERFORM f_ejecuta_bapi.

FREE: itab_doc_item,
itab_item_update,
itab_doc_sched,
itab_schd_update,
itab_doc_cond,
itab_cond_update,
wa_doc_header.

CLEAR: itab_doc_item,
itab_item_update,
itab_doc_sched,
itab_schd_update,
itab_doc_cond,
itab_cond_update,
wa_head_update.
ENDIF.

* Header
wa_doc_header-doc_type = itab_layout-bsart.
wa_doc_header-creat_date = v_datum.
wa_doc_header-vendor = itab_layout-lifnr.
wa_doc_header-purch_org = itab_layout-ekorg.
wa_doc_header-pur_group = itab_layout-ekgrp.
wa_doc_header-currency = itab_layout-waers.

wa_head_update-doc_type = c_x.
wa_head_update-creat_date = c_x.
wa_head_update-vendor = c_x.
wa_head_update-purch_org = c_x.
wa_head_update-pur_group = c_x.
wa_head_update-currency = c_x.

ENDIF.

vl_posnr = itab_layout-ebelp.

WRITE vl_posnr TO vl_posnr_c.

* Item
itab_doc_item-po_item = vl_posnr_c.
itab_doc_item-material = itab_layout-ematn.
itab_doc_item-short_text = itab_layout-txz01.
itab_doc_item-quantity = itab_layout-menge.
itab_doc_item-po_unit = itab_layout-meins.
itab_doc_item-gr_to_date = v_datum.
itab_doc_item-net_price = itab_layout-netpr.
itab_doc_item-plant = itab_layout-name1.
itab_doc_item-matl_group = itab_layout-wgbez.
itab_doc_item-stge_loc = itab_layout-lgobe.
APPEND itab_doc_item.

itab_item_update-po_item = vl_posnr_c.
itab_item_update-material = c_x.
itab_item_update-short_text = c_x.
itab_item_update-quantity = c_x.
itab_item_update-po_unit = c_x.
itab_item_update-gr_to_date = c_x.
itab_item_update-net_price = c_x.
itab_item_update-plant = c_x.
itab_item_update-matl_group = c_x.
itab_item_update-stge_loc = c_x.
APPEND itab_item_update.

* Schedul
itab_doc_sched-po_item = vl_posnr_c.
itab_doc_sched-sched_line = vl_posnr_c.
itab_doc_sched-del_datcat_ext = itab_layout-elpei.
itab_doc_sched-delivery_date = itab_layout-eeind.

APPEND itab_doc_sched.

itab_schd_update-po_item = vl_posnr_c.
itab_schd_update-sched_line = vl_posnr_c.
itab_schd_update-del_datcat_ext = c_x.
itab_schd_update-delivery_date = c_x.

APPEND itab_schd_update.

* Condiciones
itab_doc_cond-itm_number = c_itm_number.
itab_doc_cond-cond_count = c_cond_count.
itab_doc_cond-cond_type = c_cond_type.
itab_doc_cond-cond_value = itab_layout-netpr.
itab_doc_cond-currency = itab_layout-waers.
itab_doc_cond-change_id = c_change_id.

APPEND itab_doc_cond.

itab_cond_update-itm_number = c_x.
itab_cond_update-cond_count = c_x.
itab_cond_update-cond_type = c_x.
itab_cond_update-cond_value = c_x.
itab_cond_update-currency = c_x.
itab_cond_update-change_id = c_x.

APPEND itab_cond_update.

* vl_posnr = vl_posnr + 10.

ENDLOOP.

IF sy-subrc EQ 0.
PERFORM f_ejecuta_bapi.
ENDIF.

ENDFORM. " f_genera_documentos


*&---------------------------------------------------------------------*
*& Form f_ejecuta_bapi
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_ejecuta_bapi.

* Se limpia la tabla interna para recibir los mensajes del proceso del BAPI
FREE itab_return.
CLEAR itab_return.

* Se ejecuta el BAPI para la creación de la orden de compra
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = wa_doc_header
poheaderx = wa_head_update
no_price_from_po = c_x
TABLES
return = itab_return
poitem = itab_doc_item
poitemx = itab_item_update
pocond = itab_doc_cond
pocondx = itab_cond_update
poschedule = itab_doc_sched
poschedulex = itab_schd_update
posrvaccessvalues = itab_doc_srvacc.

* Se ejecuta el Commit par que la transacción quede en firme
PERFORM f_bapi_commit.

* Se presentan los mensajes que se generaron en la ejecución del BAPI
LOOP AT itab_return. "where type eq c_error.

WRITE:/ itab_return-type,
itab_return-id,
itab_return-number,
itab_return-message,
itab_return-log_no,
itab_return-log_msg_no,
itab_return-message_v1,
itab_return-message_v2,
itab_return-message_v3,
itab_return-message_v4,
itab_return-parameter,
itab_return-row,
itab_return-field,
itab_return-system.

ENDLOOP.

ENDFORM. " f_ejecuta_bapi


*&---------------------------------------------------------------------*
*& Form f_bapi_commit
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_bapi_commit.

* Se ejecuta el Commit par que la transacción quede en firme
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = itab_return1.

ENDFORM. " f_bapi_commit
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 23:09:00.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web