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 09/11/11, 16:56:57
ivansap1 ivansap1 is offline
Junior Member
 
Fecha de Ingreso: jun 2010
Mensajes: 16
Exclamation problema BAPI_PO_CCREATE1

Buenos Dias foro,ante todo gracias por su respuesta ,
quisiera saber que puede estar pasando pues estoy usando la bapi de creacion de pedido,: BAPI_PO_CREATE1 .
estoy creandolos a partir de una solicitud de pedido ,me lanza el siguiente mensaje : "NO SE CREADO NINGUNA INSTANCIA DE TIPO OBJETO PURCHASEORDER" .
otro inconvebiente es que Al DEBUGGEAR veo que antes de ingresar en la bapi ,existe precio para ello uso el campo net_price, del item de la bapi ,pero a la hora de que sale de la bapi ,no se encuentra valor del precio pues aparece con 0.
el codio es el siguiente :

FORM perform_creapedido .
DATA: l_line(4) TYPE n,
l_ebeln TYPE ekko-ebeln,
l_ekorg TYPE ekko-ekorg,
l_lifnr TYPE ekko-lifnr,
l_lifnp TYPE ekko-lifnr.

DATA: l_tab LIKE object_tab2.* SORT object_tab2 BY lifnp lifnr.
SORT object_tab2 BY waers matnr banfn bnfpo.
CLEAR: l_line.

LOOP AT object_tab2 .
CLEAR: ekko, ekpo.
l_tab = object_tab2.
if object_tab2-netpu is INITIAL.
move: object_tab2-netpr to object_tab2-netpu,
object_tab2-waers to object_tab2-waeru.
modify object_tab2 TRANSPORTING netpu waeru.
endif.

AT NEW waers.
REFRESH: item, itemx, itemschedule, itemschedulex, ipocond,
ipocondx, ipopartner, returnerr, iaddrdelivery.

CLEAR: item, itemx, itemschedule, itemschedulex, ipocond,
ipocondx, ipopartner, header, returnerr, iaddrdelivery,
headerx, "INSERT JCP20110927
ekko, ekpo.
SELECT SINGLE ekorg
INTO l_ekorg
FROM t024w
WHERE werks = s_werks-low.

IF ekko-bukrs IS INITIAL.
SELECT SINGLE bukrs
INTO ekko-bukrs
FROM t001k
WHERE bwkey = s_werks-low.
ENDIF.


header-comp_code = ekko-bukrs.
header-doc_type = w_bsartp.
header-creat_date = sy-datum.
header-created_by = sy-uname.
IF l_tab-lfdat LE sy-datum.
header-vper_start = sy-datum + 4.
header-vper_end = sy-datum + 4.
ELSE.
header-vper_start = l_tab-lfdat.
header-vper_end = l_tab-lfdat.
ENDIF.
header-item_intvl = l_line.
header-vendor = l_tab-lifnr.
header-langu = sy-langu.
header-purch_org = l_ekorg.
header-pur_group = l_tab-ekgrp.
header-currency = l_tab-waers.
header-doc_date = sy-datum.

header-collect_no = g_submi.
headerx-collect_no = 'X'.

SELECT SINGLE * FROM lfb1
WHERE lifnr = l_tab-lifnr
AND bukrs = ekko-bukrs.
IF sy-subrc = 0.
IF lfb1-zterm IS INITIAL.
header-pmnttrms = 'Z007'.
headerx-pmnttrms = 'X'.
ENDIF.
ENDIF.
headerx-comp_code = 'X'.
headerx-doc_type = 'X'.
headerx-creat_date = 'X'.
headerx-created_by = 'X'.
headerx-vper_start = 'X'.
headerx-vper_end = 'X'.
headerx-item_intvl = 'X'.
headerx-vendor = 'X'.
headerx-langu = 'X'.
headerx-purch_org = 'X'.
headerx-pur_group = 'X'.
headerx-currency = 'X'.
headerx-doc_date = 'X'.
ENDAT.
item-po_item = l_line.
item-short_text = object_tab2-txz01.
item-material = object_tab2-matnr.
item-plant = s_werks-low.
item-matl_group = object_tab2-matkl.
item-quantity = object_tab2-ktmng.


item-po_unit = object_tab2-meins.
item-net_price = object_tab2-netpr.
item-item_cat = object_tab2-pstyp.
item-acctasscat = object_tab2-knttp.
item-gr_ind = 'X'.
item-period_ind_expiration_date = 'D'.
APPEND item.
itemx-po_item = l_line.
itemx-short_text = 'X'.
itemx-material = 'X'.
itemx-plant = 'X'.
itemx-matl_group = 'X'.
itemx-quantity = 'X'.
itemx-po_unit = 'X'.
itemx-net_price = 'X'.
itemx-item_cat = 'X'.
IF item-acctasscat IS NOT INITIAL.
itemx-acctasscat = 'X'.
ENDIF. "INSERT JCP20110913
itemx-gr_ind = 'X'.


itemx-period_ind_expiration_date = 'X'.
APPEND itemx.
IF object_tab2-lfdat LE sy-datum.
object_tab2-lfdat = sy-datum + 4.
ENDIF.
itemschedule-po_item = l_line.
itemschedule-del_datcat_ext = 'D'.
itemschedule-delivery_date+0(2) = object_tab2-lfdat+6(2).
itemschedule-delivery_date+2(2) = object_tab2-lfdat+4(2).
itemschedule-delivery_date+4(4) = object_tab2-lfdat+0(4).
itemschedule-stat_date = object_tab2-lfdat.
IF object_tab2-ebeln IS NOT INITIAL.
itemschedule-quantity = object_tab2-ktmng.
ELSE.
itemschedule-quantity = object_tab2-ktmng.
ENDIF.
itemschedule-preq_no = object_tab2-banf1.
itemschedule-preq_item = object_tab2-bnfp1.
APPEND itemschedule.

itemschedulex-po_item = l_line.
itemschedulex-po_itemx = 'X'.
itemschedulex-del_datcat_ext = 'X'.
itemschedulex-delivery_date = 'X'.
itemschedulex-stat_date = 'X'.
itemschedulex-quantity = 'X'.
itemschedulex-preq_no = 'X'.
itemschedulex-preq_item = 'X'.
APPEND itemschedulex.
*Si tiene Tipo de Imputacion, agrega condiciones.
IF item-acctasscat IS NOT INITIAL.
* Adiciona condiciones de pedido/posición.
ipocond-itm_number = l_line.
ipocond-cond_st_no = '001'.
ipocond-cond_type = 'PBXX'.
IF ekpo-netpr IS NOT INITIAL.
ipocond-cond_value = ekpo-netpr.
ELSE.
ipocond-cond_value = object_tab2-netpr.
ENDIF.
IF ekko-waers IS NOT INITIAL.
ipocond-currency = ekko-waers.
ELSE.
ipocond-currency = object_tab2-waers.
ENDIF.

* Condiciones de posición
ipocond-cond_unit = ekpo-meins.
ipocond-cond_p_unt = ekpo-peinh.
ipocond-change_id = 'U'.
APPEND ipocond.

ipocondx-itm_number = l_line.
ipocondx-cond_st_no = '001'.
ipocondx-cond_type = 'X'.
ipocondx-cond_value = 'X'.
ipocondx-currency = 'X'.
ipocondx-cond_unit = 'X'.
ipocondx-cond_p_unt = 'X'.
ipocondx-change_id = 'X'.
APPEND ipocondx.
ENDIF. "INSERT JCP20110913

* Dirección de entrega
iaddrdelivery-po_item = l_line.
iaddrdelivery-addr_no = '0000022544'.
APPEND iaddrdelivery.

AT END OF waers.
ipopartner-langu = sy-langu.
ipopartner-buspartno = object_tab2-lifnr.
APPEND ipopartner.

PERFORM ejecutabapi.
ENDAT.
ENDLOOP.
PERFORM muestra_mensajes.
IF w_error IS INITIAL.
SET SCREEN 0.
LEAVE SCREEN.
ENDIF.

ENDFORM. " PERFORM_CREAPEDIDO
*&---------------------------------------------------------------------*
*& Form ejecutabapi
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ejecutabapi .
DATA: l_ebeln TYPE ekko-ebeln.
* Se declara para parametro Tabla EXTENSIONIN de la BAPI
DATA: it_bapi_extension TYPE TABLE OF bapiparex WITH HEADER LINE.

* Crea Pedido de compra
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = header
poheaderx = headerx
IMPORTING
exppurchaseorder = l_ebeln
TABLES
return = returnerr
poitem = item
poitemx = itemx
poaddrdelivery = iaddrdelivery
poschedule = itemschedule
poschedulex = itemschedulex
pocond = ipocond
pocondx = ipocondx
popartner = ipopartner
extensionin = it_bapi_extension. "INSERT JCP20110909

***** Bapi commit work**********
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.

IF l_ebeln IS INITIAL.
w_error = '1'.
LOOP AT returnerr.
t_errores-mov = 'ME21N'.
t_errores-nrodoc = ' '.
t_errores-msg = returnerr-message.
APPEND t_errores.
ENDLOOP.
ELSE.
t_errores-mov = 'ME21N'.
t_errores-nrodoc = l_ebeln.
t_errores-msg = 'Pedido de compra creado'.
APPEND t_errores.
LOOP AT itemschedule.
DELETE object_tab WHERE banf1 = itemschedule-preq_no
AND bnfp1 = itemschedule-preq_item.
DELETE object_tab2 WHERE banfn = itemschedule-preq_no
AND bnfpo = itemschedule-preq_item.

ENDLOOP.
ENDIF.

ENDFORM. " ejecutabapi

*&---------------------------------------------------------------------*
*& Form MUESTRA_MENSAJES
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM muestra_mensajes .
DATA: l_title(70) TYPE c.
REFRESH: w_cols.
* Títulos para reporte de errores
w_cols-tabname = 'KBLE'.
w_cols-fieldname = 'RCOBELNR'.
w_cols-selectflag = 'X'.
APPEND w_cols.

w_cols-tabname = 'TSTC'.
w_cols-fieldname = 'MENUE'.
w_cols-selectflag = 'X'.
APPEND w_cols.

w_cols-tabname = 'BAPIRET2'.
w_cols-fieldname = 'MESSAGE'.
w_cols-selectflag = 'X'.
APPEND w_cols.
* Titulo de la ventana de errores
l_title = text-e10.
* Mostrar errores
CALL FUNCTION 'MD_POPUP_SHOW_INTERNAL_TABLE'
EXPORTING
title = l_title
TABLES
values = t_errores
columns = w_cols
EXCEPTIONS
leave = 1
OTHERS = 2.

ENDFORM. " MUESTRA_MENSAJES





desde ya gracias por su respuesta .
Responder Con Cita
  #2  
Viejo 29/10/13, 09:26:14
ruizarreba ruizarreba is offline
Junior Member
 
Fecha de Ingreso: sep 2009
Mensajes: 23
no se ha creado ninguna instancia para el tipo de objeto PurchaseOrder

Tengo el siguiente error: no se ha creado ninguna instancia para el tipo de objeto PurchaseOrder

alguien sabe cómo solucionarlo?

Gracias.
Responder Con Cita
  #3  
Viejo 30/10/13, 15:02:26
ruizarreba ruizarreba is offline
Junior Member
 
Fecha de Ingreso: sep 2009
Mensajes: 23
Finalmente error de autorizaciones...
Responder Con Cita
  #4  
Viejo 11/04/22, 22:44:57
Paolini Paolini is offline
Junior Member
 
Fecha de Ingreso: feb 2022
Mensajes: 1
Re: problema BAPI_PO_CCREATE1

Hola Buen dia, como solventaste este problema?
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 09:16:17.


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