MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Problema con BAPI SD_SALESDOCUMENT_CREATE (foro/showthread.php?t=34026)

javierlosa 02/12/09 13:37:30

Problema con BAPI SD_SALESDOCUMENT_CREATE
 
Hola, ante todo aclaro que soy principiante.
Estoy llamando a la función SD_SALESDOCUMENT_CREATE con los mismos parámetros que la estoy probando en la SE37.


CALL FUNCTION 'SD_SALESDOCUMENT_CREATE'
EXPORTING
* SALESDOCUMENT =
sales_header_in = le_sales_header_in
sales_header_inx = le_sales_header_inx
* SENDER =
* BINARY_RELATIONSHIPTYPE = ' '
* INT_NUMBER_ASSIGNMENT = ' '
* BEHAVE_WHEN_ERROR = ' '
* LOGIC_SWITCH = ' '
* BUSINESS_OBJECT = ' '
testrun = 'X'
* CONVERT_PARVW_AUART = ' '
* STATUS_BUFFER_REFRESH = 'X'
IMPORTING
salesdocument_ex = lv_salesdocument_ex
* SALES_HEADER_OUT =
* SALES_HEADER_STATUS =
TABLES
return = lt_return
sales_items_in = lt_sales_items_in
sales_items_inx = lt_sales_items_inx
sales_partners = lt_sales_partners.



En la SE37 latabla RETURN me da "procesadas las tas tablas con éxito".
En mi programa hasta probé hardcodeando los mismos parámetros de la SE37 y obtengo: la primer tabla procesada con éxito ( SALES_HEADER_IN procesado con éxito ) y luegolos siguiente errores:

- Indicar un material o un tipo de posición, SALES_ITEM_IN.
- Error en SALES_ITEM_IN 000010.
- El doc. de ventas está aún incompleto -> Por favor, completar.
- El documento de venta no se modifica.

Como puede ser que no reconoce el material cuando le estoy pasando el mismo que en la SE37 ??!!
Si le cambio el valor a ese mismo campo (material) me cambia el error por "material inexistente", o sea que lo verifica... no entiendo..

Desde ya muchas gracias por cualquier dato.

Saludos.-

javierlosa 02/12/09 17:14:32

Encontré el problema
 
Antes de la mencionada función yo recuperaba algunos datos utilizando la BAPI 'BAPISDORDER_GETDETAILEDLIST'. Al dejar de utilizar esta última, empezó a funcionar correctamente la que me interesaba.
Realmente nose que conflicto generan.

Saludos!

Edd_401 02/12/09 19:48:13

CON LA INFORMACION QUE PROPORCIONA ESTA UN POCO DIFICIL . . .

EN FIN TE PASO EL CODIGO DE UNA VEZ QUE UTILICE LA FUNCION . . OJALA Y TE SIRVA


* fill bapi header
ty_bapisdhd1-doc_type = lv_auart.
ty_bapisdhd1-sales_org = ty_data-vkorg.
ty_bapisdhd1-distr_chan = ty_data-vtweg.
ty_bapisdhd1-division = ty_data-spart.
ty_bapisdhd1-purch_no_c = ty_data-final_des.
ty_bapisdhd1-ct_valid_f = ty_data-datab.
ty_bapisdhd1-ct_valid_t = ty_data-datbi.
ty_bapisdhd1-cust_grp4 = space.
ty_bapisdhd1-pp_search = ty_data-promo_des.
ty_bapisdhd1-price_date = sy-datum.
ty_bapisdhd1-ord_reason = lv_augru.

* Fill BAPI Item
CLEAR lv_vrkme.
SELECT SINGLE vrkme
INTO lv_vrkme
FROM mvke
WHERE matnr = ty_data-matnr
AND vkorg = ty_data-vkorg
AND vtweg = ty_data-vtweg.

it_bapisditm-material = ty_data-matnr.
it_bapisditm-itm_number = '000010'.
IF ty_data-contract_qty <= 0.
it_bapisditm-target_qty = 1.
ELSE.
it_bapisditm-target_qty = ty_data-contract_qty.
ENDIF.
it_bapisditm-price_date = sy-datlo.
APPEND it_bapisditm.

it_bapisditmx-itm_number = '000010'.
it_bapisditmx-updateflag = 'I'.
it_bapisditmx-material = 'X'.
it_bapisditmx-target_qty = 'X'.
it_bapisditmx-price_date = 'X'.
APPEND it_bapisditmx.

* FILL BAPI Partners
CLEAR it_bapiparnr.
it_bapiparnr-partn_role = 'AG'.
it_bapiparnr-partn_numb = ty_data-kunnr.
APPEND it_bapiparnr.

CLEAR it_bapiparnr.
it_bapiparnr-partn_role = 'WE'.
it_bapiparnr-partn_numb = ty_data-kunnr.
APPEND it_bapiparnr.

* FILL BAPI extension.
CASE lv_promidtype.
WHEN c_h.
CLEAR: ls_bape_vbak,ls_bape_vbakx.
it_bapiparex-structure = 'BAPE_VBAK'.
ls_bape_vbak-/bay3/hpromid = ty_data-/bay3/promid.
WRITE ls_bape_vbak TO it_bapiparex-valuepart1.
APPEND it_bapiparex.

it_bapiparex-structure = 'BAPE_VBAKX'.
ls_bape_vbakx-/bay3/hpromidx = c_x.
WRITE ls_bape_vbakx TO it_bapiparex-valuepart1.
APPEND it_bapiparex.

WHEN c_i.
CLEAR: ls_bape_vbap,ls_bape_vbapx.
it_bapiparex-structure = 'BAPE_VBAP'.
ls_bape_vbap-/bay3/ipromid = ty_data-/bay3/promid.
WRITE ls_bape_vbap TO it_bapiparex-valuepart1.
APPEND it_bapiparex.

it_bapiparex-structure = 'BAPE_VBAPX'.
ls_bape_vbapx-/bay3/ipromid = c_x.
WRITE ls_bape_vbapx TO it_bapiparex-valuepart1.
APPEND it_bapiparex.

ENDCASE.

CALL FUNCTION 'SD_SALESDOCUMENT_CREATE'
EXPORTING
sales_header_in = ty_bapisdhd1
sales_header_inx = ty_bapisdhd1x
convert_parvw_auart = c_x
business_object = 'BUS2034'
IMPORTING
salesdocument_ex = v_new_contract
TABLES
return = it_bapiret2
sales_items_in = it_bapisditm
sales_items_inx = it_bapisditmx
sales_partners = it_bapiparnr
extensionin = it_bapiparex.

vickxo 03/12/09 11:09:51

puede ser na rutina de conversion...
 
Hola, tal vez solo te falte utilizar una rutina de conversion para el material, intenta con esta


CONVERSION_EXIT_MATN1_RANGE_I

Saludos.

mimo_0329 23/02/15 18:55:06

Problema con BAPI SD_SALESDOCUMENT_CREATE
 
Hola Buenas Tardes,

Estoy teniendo problemas al igual que tú... a mi da error al momento de procesar las condiciones... el error que me da es:

"Falta la condición PB00 en el esquema de cálculo A V"

Paso todos los parámetros y están correctos pero no me genera los documentos... si me puedes ayudar lo agradezco gracias...


Husos Horarios son GMT. La hora en este momento es 03:18:29.

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