hola.. tngo un ejemplo pero con solicitud de pedidos... t lo copio..
*---------------------------------------------------------------------*
* FORM F_INICIALIZAR_ESTRUCTURAS *
*---------------------------------------------------------------------*
FORM F_INICIALIZAR_ESTRUCTURAS.
CLEAR PURCHASEORDER.
CLEAR : PO_HEADER,
PO_ITEMS,
PO_ITEM_SCHEDULES,
RETURN.
REFRESH: PO_ITEMS,
PO_ITEM_SCHEDULES,
RETURN.
*---------------------------------------------------------------------*
* Form F_BAPI1
*---------------------------------------------------------------------*
FORM F_BAPI1.
SELECT SINGLE * INTO CORRESPONDING FIELDS OF T_SOLPED
FROM EBAN
WHERE BANFN = G_BANFN
AND BNFPO = TZMM_COMPINT-BNFPO.
G_SUBRC = SY-SUBRC.
PERFORM F_LLENAR_POHEADER.
PERFORM F_LLENAR_POITEMS USING C_POS.
PERFORM F_LLENAR_PO_ITEM_SCHEDULES USING C_POS.
PERFORM F_CARGAR_BAPI1.
ENDFORM.
*---------------------------------------------------------------------*
* FORM F_LLENAR_POHEADER *
*---------------------------------------------------------------------*
FORM F_LLENAR_POHEADER.
CLEAR PO_HEADER.
* Clase de documento de compras
PO_HEADER-DOC_TYPE = C_BSART. "UB
IF G_SUBRC EQ 0.
* Organización de Compras
PO_HEADER-PURCH_ORG = T_SOLPED-EKORG. "FPU1
* Grupo de Compras
PO_HEADER-PUR_GROUP = T_SOLPED-EKGRP.
ENDIF.
* Centro suministrador
PO_HEADER-SUPPL_PLNT = TZMM_COMPINT-WERKSA.
* Lenguaje
PO_HEADER-LANGU = SY-LANGU.
ENDFORM.
*---------------------------------------------------------------------*
* FORM F_LLENAR_POITEMS *
*---------------------------------------------------------------------*
FORM F_LLENAR_POITEMS USING P_POS.
* Posición
PO_ITEMS-PO_ITEM = P_POS.
* Tipo de posición
IF G_SUBRC EQ 0.
PO_ITEMS-ITEM_CAT = T_SOLPED-PSTYP.
ENDIF.
* Centro
PO_ITEMS-PLANT = TZMM_COMPINT-WERKS.
* Almacén
PO_ITEMS-STORE_LOC = TZMM_COMPINT-LGORT.
* Clase de valoración
PO_ITEMS-VAL_TYPE = TZMM_COMPINT-BWTAR.
APPEND PO_ITEMS.
ENDFORM.
*---------------------------------------------------------------------*
* FORM F_LLENAR_PO_ITEM_SCHEDULES *
*---------------------------------------------------------------------*
FORM F_LLENAR_PO_ITEM_SCHEDULES USING P_POS.
PO_ITEM_SCHEDULES-PO_ITEM = P_POS.
PO_ITEM_SCHEDULES-PREQ_NO = G_BANFN.
PO_ITEM_SCHEDULES-PREQ_ITEM = TZMM_COMPINT-BNFPO.
APPEND PO_ITEM_SCHEDULES.
ENDFORM.
*---------------------------------------------------------------------*
* F_FORM CARGAR_BAPI1 *
*---------------------------------------------------------------------*
FORM F_CARGAR_BAPI1.
CLEAR RETURN.
REFRESH RETURN.
CALL FUNCTION 'BAPI_PO_CREATE'
EXPORTING
PO_HEADER = PO_HEADER
SKIP_ITEMS_WITH_ERROR = 'X'
IMPORTING
PURCHASEORDER = PURCHASEORDER
TABLES
PO_ITEMS = PO_ITEMS
PO_ITEM_SCHEDULES = PO_ITEM_SCHEDULES
RETURN = RETURN
EXCEPTIONS
OTHERS = 1.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
IF NOT RETURN IS INITIAL.
* Log
LOOP AT RETURN.
CLEAR T_LOG.
MOVE-CORRESPONDING TZMM_COMPINT TO T_LOG.
T_LOG-TIPO = RETURN-TYPE.
T_LOG-MSG = RETURN-MESSAGE.
APPEND T_LOG.
ENDLOOP.
ENDIF.
ENDFORM.
tngo otro ejemplo con servicios... pero creo q el q t copie t servira mas...
tal vez t falta habilitar SKIP_ITEMS_WITH_ERROR = 'X'