Ver Mensaje Individual
  #1  
Viejo 22/10/10, 07:27:55
vlg1971 vlg1971 is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 195
Problema bapi_pr_change al modificar imputacion

Hola,

Soy capaz de modificar la posicion, texto posicion pero la imputacion no, detallo codigo:

DATA: wa_pritem LIKE bapimereqitemimp,
wa_pritemx LIKE bapimereqitemx,
wa_praccount LIKE bapimereqaccount,
wa_praccountx LIKE bapimereqaccountx,
wa_pheader LIKE bapimereqheader.

DATA: BEGIN OF it_pritemx OCCURS 0.
INCLUDE STRUCTURE bapimereqitemx.
DATA: END OF it_pritemx.

DATA: BEGIN OF it_pritem OCCURS 0.
INCLUDE STRUCTURE bapimereqitemimp.
DATA: END OF it_pritem.

DATA: BEGIN OF it_praccountx OCCURS 0.
INCLUDE STRUCTURE bapimereqaccountx.
DATA: END OF it_praccountx.

DATA: BEGIN OF it_change_return OCCURS 0.
INCLUDE STRUCTURE bapiret2.
DATA: END OF it_change_return.


DATA: it_item LIKE bapimereqitem OCCURS 0 WITH HEADER LINE.
DATA: it_account LIKE bapimereqaccount OCCURS 0 WITH HEADER LINE.

CALL FUNCTION 'BAPI_PR_GETDETAIL'
EXPORTING
number = '0100000268'
account_assignment = 'X'
* ITEM_TEXT = ' '
* HEADER_TEXT = ' '
* DELIVERY_ADDRESS = ' '
* VERSION = ' '
IMPORTING
prheader = wa_pheader
TABLES
return = it_change_return
pritem = it_item
praccount = it_account
* PRADDRDELIVERY =
* PRITEMTEXT =
* PRHEADERTEXT =
* EXTENSIONOUT =
* ALLVERSIONS =
.

"Cargar valores obtenidos en bapi_pr_getdetail en
"estructura para bapi bapi_pr_change
LOOP AT it_item.
MOVE-CORRESPONDING it_item TO it_pritem.
APPEND it_pritem.
ENDLOOP.
"Marcar todos los campos a modiciar en posicion
wa_pritemx-preq_item = '00010'.
wa_pritemx-ctrl_ind = 'X'.
wa_pritemx-delete_ind = 'X'.
wa_pritemx-pur_group = 'X'.
wa_pritemx-preq_name = 'X'.
wa_pritemx-short_text = 'X'.
wa_pritemx-material = 'X'.
wa_pritemx-material_external = 'X'.
wa_pritemx-material_guid = 'X'.
wa_pritemx-material_version = 'X'.
wa_pritemx-pur_mat = 'X'.
wa_pritemx-pur_mat_external = 'X'.
wa_pritemx-pur_mat_guid = 'X'.
wa_pritemx-pur_mat_version = 'X'.
wa_pritemx-plant = 'X'.
wa_pritemx-store_loc = 'X'.
wa_pritemx-trackingno = 'X'.
wa_pritemx-matl_group = 'X'.
wa_pritemx-suppl_plnt = 'X'.
wa_pritemx-quantity = 'X'.
wa_pritemx-unit = 'X'.
wa_pritemx-preq_unit_iso = 'X'.
wa_pritemx-preq_date = 'X'.
wa_pritemx-del_datcat_ext = 'X'.
wa_pritemx-deliv_date = 'X'.
wa_pritemx-rel_date = 'X'.
wa_pritemx-gr_pr_time = 'X'.
wa_pritemx-preq_price = 'X'.
wa_pritemx-price_unit = 'X'.
wa_pritemx-item_cat = 'X'.
wa_pritemx-acctasscat = 'X'.
wa_pritemx-distrib = 'X'.
wa_pritemx-part_inv = 'X'.
wa_pritemx-gr_ind = 'X'.
wa_pritemx-gr_non_val = 'X'.
wa_pritemx-ir_ind = 'X'.
wa_pritemx-des_vendor = 'X'.
wa_pritemx-fixed_vend = 'X'.
wa_pritemx-purch_org = 'X'.
wa_pritemx-agreement = 'X'.
wa_pritemx-agmt_item = 'X'.
wa_pritemx-info_rec = 'X'.
wa_pritemx-mrp_ctrler = 'X'.
wa_pritemx-bomexpl_no = 'X'.
wa_pritemx-val_type = 'X'.
wa_pritemx-commitment = 'X'.
wa_pritemx-closed = 'X'.
wa_pritemx-reserv_no = 'X'.
wa_pritemx-fixed = 'X'.
wa_pritemx-po_unit = 'X'.
wa_pritemx-po_unit_iso = 'X'.
wa_pritemx-rev_lev = 'X'.
wa_pritemx-pckg_no = 'X'.
wa_pritemx-kanban_ind = 'X'.
wa_pritemx-po_price = 'X'.
wa_pritemx-int_obj_no = 'X'.
wa_pritemx-promotion = 'X'.
wa_pritemx-batch = 'X'.
wa_pritemx-cmmt_item = 'X'.
wa_pritemx-funds_ctr = 'X'.
wa_pritemx-fund = 'X'.
wa_pritemx-matl_cat = 'X'.
wa_pritemx-address2 = 'X'.
wa_pritemx-address = 'X'.
wa_pritemx-customer = 'X'.
wa_pritemx-supp_vendor = 'X'.
wa_pritemx-sc_vendor = 'X'.
wa_pritemx-valuation_spec_stock = 'X'.
wa_pritemx-currency = 'X'.
wa_pritemx-currency_iso = 'X'.
wa_pritemx-vend_mat = 'X'.
wa_pritemx-manuf_prof = 'X'.
wa_pritemx-langu = 'X'.
wa_pritemx-langu_iso = 'X'.
wa_pritemx-validity_object = 'X'.
wa_pritemx-fw_order = 'X'.
wa_pritemx-fw_order_item = 'X'.
wa_pritemx-plnd_delry = 'X'.
wa_pritemx-deliv_time = 'X'.
wa_pritemx-ref_req = 'X'.
wa_pritemx-ref_req_item = 'X'.
wa_pritemx-grant_nbr = 'X'.
wa_pritemx-func_area = 'X'.
wa_pritemx-req_blocked = 'X'.
wa_pritemx-reason_blocking = 'X'.
wa_pritemx-version = 'X'.
wa_pritemx-procuring_plant = 'X'.
wa_pritemx-ext_proc_prof = 'X'.
wa_pritemx-ext_proc_ref_doc = 'X'.
wa_pritemx-ext_proc_ref_item = 'X'.
wa_pritemx-funds_res = 'X'.
wa_pritemx-res_item = 'X'.
wa_pritemx-suppl_stloc = 'X'.
wa_pritemx-prio_urgency = 'X'.
wa_pritemx-prio_requirement = 'X'.
APPEND wa_pritemx TO it_pritemx.


"Indicar que cambios son los que se deben ejecutar
wa_praccountx-preq_item = '00010'.
*wa_praccountx-SERIAL_NO = 'X'.
wa_praccountx-preq_itemx = 'X'.
wa_praccountx-serial_nox = 'X'.
wa_praccountx-delete_ind = 'X'.
wa_praccountx-creat_date = 'X'.
wa_praccountx-quantity = 'X'.
wa_praccountx-distr_perc = 'X'.
wa_praccountx-net_value = 'X'.
wa_praccountx-gl_account = 'X'.
wa_praccountx-bus_area = 'X'.
wa_praccountx-costcenter = 'X'.
wa_praccountx-sd_doc = 'X'.
wa_praccountx-itm_number = 'X'.
wa_praccountx-sched_line = 'X'.
wa_praccountx-asset_no = 'X'.
wa_praccountx-sub_number = 'X'.
wa_praccountx-orderid = 'X'.
wa_praccountx-gr_rcpt = 'X'.
wa_praccountx-unload_pt = 'X'.
wa_praccountx-co_area = 'X'.
*wa_praccountx-COSTOBJECTV = 'X'.
wa_praccountx-profit_ctr = 'X'.
wa_praccountx-wbs_element = 'X'.
wa_praccountx-network = 'X'.
wa_praccountx-rl_est_key = 'X'.
wa_praccountx-part_acct = 'X'.
wa_praccountx-cmmt_item = 'X'.
wa_praccountx-rec_ind = 'X'.
wa_praccountx-funds_ctr = 'X'.
wa_praccountx-fund = 'X'.
wa_praccountx-func_area = 'X'.
wa_praccountx-ref_date = 'X'.
wa_praccountx-tax_code = 'X'.
wa_praccountx-taxjurcode = 'X'.
wa_praccountx-nond_itax = 'X'.
wa_praccountx-acttype = 'X'.
wa_praccountx-co_busproc = 'X'.
wa_praccountx-res_doc = 'X'.
wa_praccountx-res_item = 'X'.
wa_praccountx-activity = 'X'.
wa_praccountx-grant_nbr = 'X'.
wa_praccountx-cmmt_item_long = 'X'.
wa_praccountx-func_area_long = 'X'.
APPEND wa_praccountx TO it_praccountx.

"Modif. field
LOOP AT it_account.
it_account-wbs_element = 'VIVES'.
MODIFY it_account.
ENDLOOP.

DATA lv_banfn TYPE bapimereqheader-preq_no VALUE '0100000268'.
CALL FUNCTION 'BAPI_PR_CHANGE'
EXPORTING
number = lv_banfn
* prheader =
* prheaderx =
* TESTRUN =
* IMPORTING
* PRHEADEREXP =
TABLES
return = it_change_return
pritem = it_pritem
pritemx = it_pritemx
praccount = it_account
praccountx = it_praccountx
.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
.

Alguien me puede horientar al respecto??
Gracias por la atencion
Responder Con Cita