2010 Jan 06 12:08 AM
Hello Experts,
I am working on a RFID program to Receive goods from vendor...
One of the steps of the program should CHANGE the quantity inside a received batch.
To do so, I need to UNPACK the Handling Unit first... then change the quantity.
I am using the following Function Modules to do so:
- 'HU_GET_HUS'
- 'V51P_FILL_GT'
- 'HU_PACKING_AND_UNPACKING'
- 'HU_POST'
First 2 FM works fine...
But when I get to the 3rd one, I keep getting "NOT_POSSIBLE" error...
Have anyone done this before??
Here's the code I've done to do some testing before putting it into my code...
PLEEEEEEEEEEEASE HELP.
TYPE-POOLS: vsep. PARAMETERS: p_venum LIKE vekp-venum.
DATA: wa_object LIKE hum_object,
it_object TYPE TABLE OF hum_object.
DATA: wa_v51vp LIKE v51vp,
it_v51vp TYPE TABLE OF v51vp.
DATA: flag LIKE v51p_select_flags.
DATA: it_venum TYPE STANDARD TABLE OF hum_venum,
ef_rcode LIKE sy-subrc,
et_vekp TYPE STANDARD TABLE OF vsep_s_vekp,
et_vepo TYPE STANDARD TABLE OF vsep_s_vepo,
et_vevw TYPE vsep_t_vevw,
et_highest_level TYPE vsep_t_venum,
et_messages TYPE huitem_messages_t,
is_packing_request TYPE vsep_s_pithu,
es_p_request TYPE vsep_s_pithu,
es_item LIKE vepovb,
cs_header LIKE vekpvb,
ef_number TYPE vpobjkey,
et_header TYPE STANDARD TABLE OF vekpvb,
et_items TYPE STANDARD TABLE OF vepovb,
et_item_serialno TYPE vsep_t_rserob,
et_history TYPE hum_history_t,
et_highest_levels TYPE hum_venum_t.
DATA: wa_venum LIKE hum_venum,
wa_vepo TYPE vsep_s_vepo,
wa_vekp TYPE vsep_s_vekp,
wa_items TYPE vepovb,
wa_header TYPE vekpvb.
START-OF-SELECTION.
wa_venum-venum = p_venum.
APPEND wa_venum TO it_venum.
CALL FUNCTION 'HU_GET_HUS'
EXPORTING
it_venum = it_venum
IMPORTING
et_header = et_header
et_items = et_items
et_item_serialno = et_item_serialno
et_history = et_history
et_highest_levels = et_highest_levels
et_messages = et_messages
EXCEPTIONS
hus_locked = 1
no_hu_found = 2
fatal_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE et_header INDEX 1 INTO wa_header.
CALL FUNCTION 'V51P_FILL_GT'
EXPORTING
it_venum = it_venum
IMPORTING
ef_rcode = ef_rcode
et_vekp = et_vekp
et_vepo = et_vepo
et_vevw = et_vevw
et_highest_level = et_highest_level
et_messages = et_messages
EXCEPTIONS
hu_locked = 1
no_hu_found = 2
fatal_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE et_vepo INDEX 1 INTO wa_vepo.
READ TABLE et_vekp INDEX 1 INTO wa_vekp.
MOVE-CORRESPONDING wa_vepo TO is_packing_request.
is_packing_request-belnr = wa_vepo-vbeln.
is_packing_request-quantity = wa_vepo-vemng.
is_packing_request-veanz = '-1'.
is_packing_request-meins = wa_vepo-vemeh.
is_packing_request-exidv = wa_vekp-exidv.
CALL FUNCTION 'HU_PACKING_AND_UNPACKING'
EXPORTING
is_packing_request = is_packing_request
IMPORTING
ef_rcode = ef_rcode
es_p_request = es_p_request
es_item = es_item
CHANGING
cs_header = cs_header
EXCEPTIONS
missing_data = 1
hu_not_changeable = 2
not_possible = 3
customizing = 4
weight = 5
volume = 6
serial_nr = 7
fatal_error = 8
OTHERS = 9.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'HU_POST'
EXPORTING
if_synchron = 'X'
if_commit = 'X'
IMPORTING
ef_number = ef_number.
break nunfx004.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.Thanks in advance,
Fernanda
2010 Jan 06 3:54 AM
Hi ,
Check this code.
Pack componet HU to Overpack HU. *
l_packing_req-venum = g_ovrp_venum. "Overpack Internal HU
l_packing_req-exidv = g_ovrp_exidv. "Overpack External HU
l_packing_req-veanz = '1'. "PACK Constant
l_packing_req-sub_hu_venum = l_int_venum.
l_packing_req-sub_hu_exidv = l_int_exidv. "Componet External HU
l_packing_req-velin = '3'. "HU Type Constant
l_packing_req-quantity = '1.000'.
call function 'HU_PACKING_AND_UNPACKING'
exporting
is_packing_request = l_packing_req
exceptions
missing_data = 1
hu_not_changeable = 2
not_possible = 3
customizing = 4
weight = 5
volume = 6
serial_nr = 7
fatal_error = 8
others = 9.
if sy-subrc <> 0.
error
clear: v_msgv1, v_msgv2, v_msgv3.
v_msgv1 = text-031.
PERFORM display_message USING v_msgv1 v_msgv2 v_msgv3.
leave to screen sy-dynnr.
endif.
No Errors --> POST HU
call function 'HU_POST'
exporting
if_synchron = 'X'
if_commit = 'X'.
plz write what you are passing to 'HU_PACKING_AND_UNPACKING' and hu_post fm.
Regards
Mohinder Singh Chauhan
Hello Experts,
I am working on a RFID program to Receive goods from vendor...
One of the steps of the program should CHANGE the quantity inside a received batch.
To do so, I need to UNPACK the Handling Unit first... then change the quantity.
I am using the following Function Modules to do so:
- 'HU_GET_HUS'
- 'V51P_FILL_GT'
- 'HU_PACKING_AND_UNPACKING'
- 'HU_POST'
First 2 FM works fine...
But when I get to the 3rd one, I keep getting "NOT_POSSIBLE" error...
Have anyone done this before??
Here's the code I've done to do some testing before putting it into my code...
PLEEEEEEEEEEEASE HELP.
TYPE-POOLS: vsep. PARAMETERS: p_venum LIKE vekp-venum.
DATA: wa_object LIKE hum_object,
it_object TYPE TABLE OF hum_object.
DATA: wa_v51vp LIKE v51vp,
it_v51vp TYPE TABLE OF v51vp.
DATA: flag LIKE v51p_select_flags.
DATA: it_venum TYPE STANDARD TABLE OF hum_venum,
ef_rcode LIKE sy-subrc,
et_vekp TYPE STANDARD TABLE OF vsep_s_vekp,
et_vepo TYPE STANDARD TABLE OF vsep_s_vepo,
et_vevw TYPE vsep_t_vevw,
et_highest_level TYPE vsep_t_venum,
et_messages TYPE huitem_messages_t,
is_packing_request TYPE vsep_s_pithu,
es_p_request TYPE vsep_s_pithu,
es_item LIKE vepovb,
cs_header LIKE vekpvb,
ef_number TYPE vpobjkey,
et_header TYPE STANDARD TABLE OF vekpvb,
et_items TYPE STANDARD TABLE OF vepovb,
et_item_serialno TYPE vsep_t_rserob,
et_history TYPE hum_history_t,
et_highest_levels TYPE hum_venum_t.
DATA: wa_venum LIKE hum_venum,
wa_vepo TYPE vsep_s_vepo,
wa_vekp TYPE vsep_s_vekp,
wa_items TYPE vepovb,
wa_header TYPE vekpvb.
START-OF-SELECTION.
wa_venum-venum = p_venum.
APPEND wa_venum TO it_venum.
CALL FUNCTION 'HU_GET_HUS'
EXPORTING
it_venum = it_venum
IMPORTING
et_header = et_header
et_items = et_items
et_item_serialno = et_item_serialno
et_history = et_history
et_highest_levels = et_highest_levels
et_messages = et_messages
EXCEPTIONS
hus_locked = 1
no_hu_found = 2
fatal_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE et_header INDEX 1 INTO wa_header.
CALL FUNCTION 'V51P_FILL_GT'
EXPORTING
it_venum = it_venum
IMPORTING
ef_rcode = ef_rcode
et_vekp = et_vekp
et_vepo = et_vepo
et_vevw = et_vevw
et_highest_level = et_highest_level
et_messages = et_messages
EXCEPTIONS
hu_locked = 1
no_hu_found = 2
fatal_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE et_vepo INDEX 1 INTO wa_vepo.
READ TABLE et_vekp INDEX 1 INTO wa_vekp.
MOVE-CORRESPONDING wa_vepo TO is_packing_request.
is_packing_request-belnr = wa_vepo-vbeln.
is_packing_request-quantity = wa_vepo-vemng.
is_packing_request-veanz = '-1'.
is_packing_request-meins = wa_vepo-vemeh.
is_packing_request-exidv = wa_vekp-exidv.
CALL FUNCTION 'HU_PACKING_AND_UNPACKING'
EXPORTING
is_packing_request = is_packing_request
IMPORTING
ef_rcode = ef_rcode
es_p_request = es_p_request
es_item = es_item
CHANGING
cs_header = cs_header
EXCEPTIONS
missing_data = 1
hu_not_changeable = 2
not_possible = 3
customizing = 4
weight = 5
volume = 6
serial_nr = 7
fatal_error = 8
OTHERS = 9.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'HU_POST'
EXPORTING
if_synchron = 'X'
if_commit = 'X'
IMPORTING
ef_number = ef_number.
break nunfx004.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.Thanks in advance,
Fernanda
2010 Jan 06 3:54 AM
Hi ,
Check this code.
Pack componet HU to Overpack HU. *
l_packing_req-venum = g_ovrp_venum. "Overpack Internal HU
l_packing_req-exidv = g_ovrp_exidv. "Overpack External HU
l_packing_req-veanz = '1'. "PACK Constant
l_packing_req-sub_hu_venum = l_int_venum.
l_packing_req-sub_hu_exidv = l_int_exidv. "Componet External HU
l_packing_req-velin = '3'. "HU Type Constant
l_packing_req-quantity = '1.000'.
call function 'HU_PACKING_AND_UNPACKING'
exporting
is_packing_request = l_packing_req
exceptions
missing_data = 1
hu_not_changeable = 2
not_possible = 3
customizing = 4
weight = 5
volume = 6
serial_nr = 7
fatal_error = 8
others = 9.
if sy-subrc <> 0.
error
clear: v_msgv1, v_msgv2, v_msgv3.
v_msgv1 = text-031.
PERFORM display_message USING v_msgv1 v_msgv2 v_msgv3.
leave to screen sy-dynnr.
endif.
No Errors --> POST HU
call function 'HU_POST'
exporting
if_synchron = 'X'
if_commit = 'X'.
plz write what you are passing to 'HU_PACKING_AND_UNPACKING' and hu_post fm.
Regards
Mohinder Singh Chauhan
2010 Jan 19 11:45 PM
Hi Mohinder.
Thanks for the help!
In my case, the functions wouldn't work since my HU was already assigned to an Inbound Delivery!
I had to use BDC in the end!
Thanks and regards,
Fernanda
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |