Difference between revisions of "SAP SD BAPI TRANSPORTE"
From SapWiki
(2 intermediate revisions by the same user not shown) | |||
Line 390: | Line 390: | ||
== Ejemplo 3 con embalaje == | == Ejemplo 3 con embalaje == | ||
− | <nowiki> FORM CREAR_TRANSPORTE using i_unidad | + | <nowiki>FORM CREAR_TRANSPORTE using i_unidad |
− | + | CHANGING o_TKNUM type TKNUM | |
− | + | o_SUBRC. | |
− | + | data: lt_return type TABLE OF bapiret2, | |
− | + | ls_return like LINE OF lt_return. | |
− | + | data: ls_headerdata LIKE BAPISHIPMENTHEADER, | |
− | + | ls_itemdata type BAPISHIPMENTITEM, | |
− | + | lt_itemdata type TABLE OF BAPISHIPMENTITEM, | |
− | + | ls_HEADERDEADLINE type BAPISHIPMENTHEADERDEADLINE, | |
− | + | lt_HEADERDEADLINE type table of BAPISHIPMENTHEADERDEADLINE. | |
− | + | data: ls_HDUNHEADER LIKE BAPISHIPMENTHDUNHEADER, | |
− | + | lt_HDUNHEADER like TABLE OF ls_HDUNHEADER, | |
− | + | ls_HDUNITEM LIKE BAPISHIPMENTHDUNITEM, | |
− | + | lt_HDUNITEM like TABLE OF ls_HDUNITEM. | |
− | + | ls_headerdata-SHIPMENT_TYPE = gd_SHTYP. | |
− | + | ls_headerdata-TRANS_PLAN_PT = vttk-tplst. | |
− | + | ls_headerdata-SHIPPING_COND = vttk-vsbed. | |
− | + | ls_headerdata-SHIPMENT_ROUTE = vttk-route. | |
− | + | ls_headerdata-SERVICE_AGENT_ID = vttk-tdlnr. | |
− | + | ls_headerdata-CONTAINER_ID = vttk-signi. | |
− | + | ls_headerdata-EXTERNAL_ID_1 = vttk-exti1. | |
− | + | move LIKP-ANZPK to ls_headerdata-TEXT_1. | |
− | + | ls_headerdata-status_plan = 'X'. | |
− | + | loop at gt_likp into gs_likp where vbeln is NOT INITIAL | |
− | + | . | |
− | + | ls_itemdata-DELIVERY = gs_likp-vbeln. | |
− | |||
− | |||
− | |||
− | + | append ls_itemdata to lt_itemdata. | |
+ | endloop. | ||
− | + | data ld_time(14) type c. | |
− | + | CONCATENATE vttk-dtdis vttk-uzdis into ld_time. | |
− | |||
− | |||
− | + | ls_HEADERDEADLINE-TIME_TYPE = 'HDRSTPLDT'. "WSHDRTDDAT | |
+ | move ld_time to ls_HEADERDEADLINE-TIME_STAMP_UTC. | ||
+ | ls_HEADERDEADLINE-time_zone = 'CHILE'. | ||
− | + | append ls_HEADERDEADLINE to lt_HEADERDEADLINE. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | if i_unidad ne space. | |
− | + | loop at gt_likp into gs_likp where vbeln is NOT INITIAL | |
− | + | and sel = 'X'. | |
− | + | clear ls_HDUNITEM. | |
− | + | select vbeln posnr matnr lfimg | |
− | + | into | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | (ls_HDUNITEM-DELIV_NUMB,ls_HDUNITEM-DELIV_ITEM,ls_HDUNITEM-material,ls_HDUNITEM-PACK_QTY) | |
− | + | from lips | |
− | + | where vbeln = gs_likp-vbeln. | |
− | + | ls_HDUNITEM-HDL_UNIT_EXID_INTO = '$0001'. | |
− | + | append ls_HDUNITEM to lt_HDUNITEM. | |
− | + | endselect. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
endloop. | endloop. | ||
if sy-subrc = 0. | if sy-subrc = 0. | ||
− | + | ls_HDUNHEADER-SHIP_MAT = i_unidad. | |
− | + | ls_HDUNHEADER-HDL_UNIT_EXID = '$0001'. | |
− | + | append ls_HDUNHEADER to lt_HDUNHEADER. | |
− | + | else. | |
− | + | message E490(VW) WITH 'No se ha seleccionado ninguna Entrega'. | |
+ | endif. | ||
+ | else. | ||
+ | clear: lt_HDUNHEADER[], | ||
+ | lt_HDUNITEM[]. | ||
+ | endif. | ||
+ | * | ||
+ | CALL FUNCTION 'BAPI_SHIPMENT_CREATE' | ||
+ | EXPORTING | ||
+ | HEADERDATA = ls_headerdata | ||
+ | IMPORTING | ||
+ | TRANSPORT = o_TKNUM | ||
+ | TABLES | ||
+ | HEADERDEADLINE = lt_HEADERDEADLINE | ||
+ | ITEMDATA = lt_itemdata | ||
+ | HDUNHEADER = lt_HDUNHEADER | ||
+ | HDUNITEM = lt_HDUNITEM | ||
+ | RETURN = lt_return | ||
+ | . | ||
+ | if o_TKNUM is INITIAL. | ||
+ | * transporte no creado | ||
+ | o_subrc = 1. | ||
+ | loop at lt_return into ls_return WHERE type = 'E'. | ||
+ | exit. | ||
+ | endloop. | ||
+ | if sy-subrc = 0. | ||
+ | MESSAGE ID ls_return-id TYPE 'E' NUMBER ls_return-number | ||
+ | WITH ls_return-MESSAGE_V1 | ||
+ | ls_return-MESSAGE_V2 | ||
+ | ls_return-MESSAGE_V3 | ||
+ | ls_return-MESSAGE_V4. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * GRABA TEXTOS | + | endif. |
− | + | else. | |
− | + | o_subrc = 0. | |
− | + | CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' | |
− | + | EXPORTING | |
− | + | WAIT = 'X' | |
− | + | IMPORTING | |
− | + | RETURN = ls_return. | |
− | + | ||
− | + | * GRABA TEXTOS | |
+ | if ls_return is INITIAL. | ||
+ | PERform get_texts_from_screen_and_save using o_TKNUM . | ||
+ | else. | ||
+ | MESSAGE ID ls_return-id TYPE 'E' NUMBER ls_return-number | ||
+ | WITH ls_return-MESSAGE_V1 | ||
+ | ls_return-MESSAGE_V2 | ||
+ | ls_return-MESSAGE_V3 | ||
+ | ls_return-MESSAGE_V4. | ||
+ | endif. | ||
− | + | message s006(VW) with o_TKNUM. | |
− | + | ENDIF. | |
− | + | ENDFORM. " CREAR_TRANSPORTE</nowiki> | |
== Modificar Transporte == | == Modificar Transporte == | ||
*Modificar estado transporte | *Modificar estado transporte | ||
+ | <nowiki>DATA: l_it_header TYPE bapishipmentheader, | ||
+ | l_it_headeraction TYPE bapishipmentheaderaction, | ||
+ | l_it_return TYPE TABLE OF bapiret2. | ||
+ | DATA: l_wa_return TYPE bapiret2. | ||
− | + | l_it_header-shipment_num = shipment. | |
− | + | l_it_headeraction-shipment_num = 'X'. | |
− | |||
− | |||
− | + | l_it_header-status_shpmnt_start = 'X'. | |
− | + | l_it_headeraction-status_shpmnt_start = 'C'. | |
− | + | CALL FUNCTION 'BAPI_SHIPMENT_CHANGE' | |
− | + | EXPORTING | |
− | + | headerdata = l_it_header | |
− | + | headerdataaction = l_it_headeraction | |
− | + | TABLES | |
− | + | return = l_it_return.</nowiki> | |
− | |||
− | |||
− | |||
== bloquear patente ( VTTK-SIGNI ) == | == bloquear patente ( VTTK-SIGNI ) == | ||
− | <nowiki> FORM BLOQUEAR_PATENTE . | + | <nowiki>FORM BLOQUEAR_PATENTE . |
− | + | data : lt_SYSTEM_STATUS type TABLE OF BAPI_ITOB_STATUS WITH HEADER LINE, | |
− | + | lt_USER_STATUS type TABLE OF BAPI_ITOB_STATUS WITH HEADER LINE. | |
− | + | data wa_return type bapiret2. | |
− | + | data: l_equi type EQUNR, | |
− | + | l_objnr type JSTO-OBJNR, | |
− | + | l_stat_e LIKE jest-stat. | |
− | + | move wa_vttk-signi to l_equi. | |
− | + | CALL FUNCTION 'BAPI_EQUI_GETSTATUS' | |
− | + | EXPORTING | |
− | + | EQUIPMENT = l_equi | |
− | + | IMPORTING | |
− | + | RETURN = wa_return | |
− | + | TABLES | |
− | + | SYSTEM_STATUS = lt_system_status | |
− | + | USER_STATUS = lt_user_status | |
− | + | . | |
− | + | if wa_return is NOT INITIAL. | |
− | + | write:/ 'Transporte:', | |
− | + | wa_vttk-tknum, | |
− | + | 'Error leer estado Patente:', | |
− | + | wa_vttk-signi, | |
− | + | wa_return-MESSAGE(80). | |
− | + | gd_bloqueado = co_no_aplica. | |
− | + | return. | |
− | + | endif. | |
− | + | loop at lt_USER_STATUS TRANSPORTING NO FIELDS WHERE status = 'E0001'. | |
− | + | ENDLOOP. | |
− | + | if sy-subrc = 0. | |
− | + | CONCATENATE 'IE' wa_vttk-signi into l_objnr. | |
− | + | move 'E0002' to l_stat_e. | |
− | CALL FUNCTION ' | + | CALL FUNCTION 'STATUS_CHANGE_EXTERN' |
+ | EXPORTING | ||
+ | OBJNR = l_objnr | ||
+ | USER_STATUS = l_stat_e | ||
+ | EXCEPTIONS | ||
+ | OBJECT_NOT_FOUND = 1 | ||
+ | STATUS_INCONSISTENT = 2 | ||
+ | STATUS_NOT_ALLOWED = 3 | ||
+ | OTHERS = 4 | ||
+ | . | ||
+ | IF SY-SUBRC <> 0. | ||
+ | write:/ 'Transporte:', | ||
+ | wa_vttk-tknum, | ||
+ | 'Error bloqueo patente:', | ||
+ | wa_vttk-signi. | ||
+ | else. | ||
+ | CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' | ||
EXPORTING | EXPORTING | ||
− | + | WAIT = 'X' | |
− | + | . | |
− | + | write:/ 'Transporte:', | |
− | + | wa_vttk-tknum, | |
− | + | 'Patente bloqueada con exito:', | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
wa_vttk-signi. | wa_vttk-signi. | ||
− | + | gd_bloqueado = co_yes. | |
− | + | add 1 to gd_num_bloqueados. | |
− | + | ENDIF. | |
− | + | else. | |
− | + | gd_bloqueado = co_no_aplica. | |
− | + | endif. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ENDFORM. " BLOQUEAR_PATENTE</nowiki> |
Latest revision as of 21:58, 4 April 2020
Contents
Ejemplo 1
REPORT ztest_bapi_shipment_create2 . *************************************************************** * This report is provided to help understanding the interface * * of function module 'BAPI_SHIPMENT_CREATE' with regard to * * its ability to fill the different shipment-deadlines * * With running this report, new shipments are created * * see note 531207 *************************************************************** * fill the interface for bapi DATA: headerdata LIKE bapishipmentheader, headerdeadline LIKE bapishipmentheaderdeadline OCCURS 0 WITH HEADER LINE, itemdata LIKE bapishipmentitem OCCURS 0 WITH HEADER LINE, stagedata LIKE bapishipmentstage OCCURS 0 WITH HEADER LINE, stagedeadline LIKE bapishipmentstagedeadline OCCURS 0 WITH HEADER LINE, itemonstage LIKE bapishipmentitemonstage OCCURS 0 WITH HEADER LINE, address LIKE bapishipmentaddress OCCURS 0 WITH HEADER LINE, hdunheader LIKE bapishipmenthdunheader OCCURS 0 WITH HEADER LINE, hdunitem LIKE bapishipmenthdunitem OCCURS 0 WITH HEADER LINE, return LIKE bapiret2 OCCURS 0 WITH HEADER LINE. SELECTION-SCREEN COMMENT /1(83) com1. SELECTION-SCREEN COMMENT /1(83) com2. SELECTION-SCREEN COMMENT /1(83) com3. SELECTION-SCREEN COMMENT /1(83) com4. SELECTION-SCREEN COMMENT /1(83) com5. SELECTION-SCREEN COMMENT /1(83) com6. SELECTION-SCREEN COMMENT /1(83) com7. SELECTION-SCREEN SKIP 1. SELECTION-SCREEN ULINE. SELECTION-SCREEN BEGIN OF BLOCK header WITH FRAME TITLE text-hrd. * Headerdate - obligatory SELECTION-SCREEN COMMENT /1(79) com8 FOR FIELD tplst. PARAMETER: tplst LIKE vttk-tplst. SELECTION-SCREEN COMMENT /1(79) com9 FOR FIELD tplst. PARAMETER: shtyp LIKE vttk-shtyp. SELECTION-SCREEN END OF BLOCK header. SELECTION-SCREEN ULINE. SELECTION-SCREEN BEGIN OF BLOCK status WITH FRAME TITLE com10. * Plan PARAMETER: plan LIKE bapishipmentheader-status_plan. *checkin PARAMETER: check LIKE bapishipmentheader-status_checkin. *load start PARAMETER: load_s LIKE bapishipmentheader-status_load_start. *load end PARAMETER: load_e LIKE bapishipmentheader-status_load_end. *Completion PARAMETER: compl LIKE bapishipmentheader-status_compl. * tra begin PARAMETER: ship_s LIKE bapishipmentheader-status_shpmnt_start. * tra end PARAMETER: ship_e LIKE bapishipmentheader-status_shpmnt_end. SELECTION-SCREEN END OF BLOCK status. * Headerdeadline SELECTION-SCREEN BEGIN OF BLOCK h_deadline WITH FRAME TITLE com11. PARAMETERS: ttype(10) DEFAULT 'HDRSTPLDT', "= End of planning utc LIKE bapishipmentheaderdeadline-time_stamp_utc, zone LIKE bapishipmentheaderdeadline-time_zone. PARAMETERS: ttype2(10) DEFAULT 'HDRSTCIPDT',"= planned date of check-in utc2 LIKE bapishipmentheaderdeadline-time_stamp_utc, zone2 LIKE bapishipmentheaderdeadline-time_zone. PARAMETERS: ttype3(10) DEFAULT 'HDRSTCIADT',"= actual date of check-in utc3 LIKE bapishipmentheaderdeadline-time_stamp_utc, zone3 LIKE bapishipmentheaderdeadline-time_zone. PARAMETERS: ttype4(10) DEFAULT 'HDRSTLSPDT',"= planned date f. start loading utc4 LIKE bapishipmentheaderdeadline-time_stamp_utc, zone4 LIKE bapishipmentheaderdeadline-time_zone. PARAMETERS: ttype5(10) DEFAULT 'HDRSTLSADT',"= current date f. start loading utc5 LIKE bapishipmentheaderdeadline-time_stamp_utc, zone5 LIKE bapishipmentheaderdeadline-time_zone. PARAMETERS: ttype6(10) DEFAULT 'HDRSTLEPDT',"= planned date f. end loading utc6 LIKE bapishipmentheaderdeadline-time_stamp_utc, zone6 LIKE bapishipmentheaderdeadline-time_zone. PARAMETERS: ttype7(10) DEFAULT 'HDRSTLEADT',"= actual date f. end loading utc7 LIKE bapishipmentheaderdeadline-time_stamp_utc, zone7 LIKE bapishipmentheaderdeadline-time_zone. PARAMETERS: ttype8(10) DEFAULT 'HDRSTCPDT',"= planned date f. shpmnt completion utc8 LIKE bapishipmentheaderdeadline-time_stamp_utc, zone8 LIKE bapishipmentheaderdeadline-time_zone. PARAMETERS: ttype9(10) DEFAULT 'HDRSTCADT',"= actual date f. shpmnt completion utc9 LIKE bapishipmentheaderdeadline-time_stamp_utc, zone9 LIKE bapishipmentheaderdeadline-time_zone. PARAMETERS: ttype10(10) DEFAULT 'HDRSTSSPDT',"= planned date f. start shpmnt utc10 LIKE bapishipmentheaderdeadline-time_stamp_utc, zone10 LIKE bapishipmentheaderdeadline-time_zone. PARAMETERS: ttype11(10) DEFAULT 'HDRSTSSADT',"= actual date f. start shpmnt utc11 LIKE bapishipmentheaderdeadline-time_stamp_utc, zone11 LIKE bapishipmentheaderdeadline-time_zone. PARAMETERS: ttype12(10) DEFAULT 'HDRSTSEPDT',"= planned date f. end shpmnt utc12 LIKE bapishipmentheaderdeadline-time_stamp_utc, zone12 LIKE bapishipmentheaderdeadline-time_zone. PARAMETERS: ttype13(10) DEFAULT 'HDRSTSEADT',"= actual date f. end shpmnt utc13 LIKE bapishipmentheaderdeadline-time_stamp_utc, zone13 LIKE bapishipmentheaderdeadline-time_zone. SELECTION-SCREEN END OF BLOCK h_deadline. *********************************************************************** * Format the select-options * *********************************************************************** INITIALIZATION. com1 = 'This report was provided to help understanding the behaviour'. com2 = 'of function module BAPI_SHIPMENT_CREATE with regard to its '. com3 = 'ability to fill the new shipments deadlines: '. com4 = 'Planning, Check-In, Loading Start, Loading end, '. com5 = 'Shpmnt completion, Shipment start and shipment end.'. com6 = 'This report creates new shipments which can be '. com7 = 'viewed e.g. with transaction VT03n'. com8 = 'Transportation Planning Point (obligatory)'. com9 = 'Shipment type (obligatory)'. com10 = 'BAPISHIPMENTHEADER-Flags --> see note 531207 '. com11 = 'HEADERDEADLINE-Structure --> see note 531207 '. *********************************************************************** START-OF-SELECTION. ******************head begin*********************************** headerdata-trans_plan_pt = tplst. headerdata-shipment_type = shtyp. * change Plan status * HEADERDATA-SHIPMENT_NUM = tknum. IF plan <> space. headerdata-status_plan = plan. ENDIF. * Change Check_in status IF check <> space. headerdata-status_checkin = check. ENDIF. *load beginn IF load_s <> space . headerdata-status_load_start = load_s. ENDIF. * load end IF load_e <> space . headerdata-status_load_end = load_e. ENDIF. * completion IF compl <> space. headerdata-status_compl = compl. ENDIF. *tra beginn IF ship_s <> space. headerdata-status_shpmnt_start = ship_s. ENDIF. *tra beginn IF ship_e <> space. headerdata-status_shpmnt_end = ship_e. ENDIF. ***** HEADERDEADLINE END OF PLANNING IF ttype <> space. headerdeadline-time_type = ttype. headerdeadline-time_stamp_utc = utc. headerdeadline-time_zone = zone. APPEND headerdeadline. ENDIF. ***** HEADERDEADLINE PLANNED DATE OF CHECK-IN IF ttype2 <> space. headerdeadline-time_type = ttype2. headerdeadline-time_stamp_utc = utc2. headerdeadline-time_zone = zone2. APPEND headerdeadline. ENDIF. ***** HEADERDEADLINE ACTUAL DATE OF CHECK-IN IF ttype3 <> space. headerdeadline-time_type = ttype3. headerdeadline-time_stamp_utc = utc3. headerdeadline-time_zone = zone3. APPEND headerdeadline. ENDIF. ***** HEADERDEADLINE PLANNED D START OF LOADING IF ttype4 <> space. headerdeadline-time_type = ttype4. headerdeadline-time_stamp_utc = utc4. headerdeadline-time_zone = zone4. APPEND headerdeadline. ENDIF. ***** HEADERDEADLINE CURRENT D START OF LOADING IF ttype5 <> space. headerdeadline-time_type = ttype5. headerdeadline-time_stamp_utc = utc5. headerdeadline-time_zone = zone5. APPEND headerdeadline. ENDIF. ***** HEADERDEADLINE PLANNED D END OF LOADING IF ttype6 <> space. headerdeadline-time_type = ttype6. headerdeadline-time_stamp_utc = utc6. headerdeadline-time_zone = zone6. APPEND headerdeadline. ENDIF. ***** HEADERDEADLINE ACTUAL D END OF LOADING IF ttype7 <> space. headerdeadline-time_type = ttype7. headerdeadline-time_stamp_utc = utc7. headerdeadline-time_zone = zone7. APPEND headerdeadline. ENDIF. ***** HEADERDEADLINE PLANNED D SHIPMENT COMPLETION IF ttype8 <> space. headerdeadline-time_type = ttype8. headerdeadline-time_stamp_utc = utc8. headerdeadline-time_zone = zone8. APPEND headerdeadline. ENDIF. ***** HEADERDEADLINE ACTUAL D SHIPMENT COMPLETION IF ttype9 <> space. headerdeadline-time_type = ttype9. headerdeadline-time_stamp_utc = utc9. headerdeadline-time_zone = zone9. APPEND headerdeadline. ENDIF. ***** HEADERDEADLINE PLANNED D START OF SHIPMENT IF ttype10 <> space. headerdeadline-time_type = ttype10. headerdeadline-time_stamp_utc = utc10. headerdeadline-time_zone = zone10. APPEND headerdeadline. ENDIF. ***** HEADERDEADLINE ACTUAL D START OF SHIPMENT IF ttype11 <> space. headerdeadline-time_type = ttype11. headerdeadline-time_stamp_utc = utc11. headerdeadline-time_zone = zone11. APPEND headerdeadline. ENDIF. ***** HEADERDEADLINE PLANNED D END OF SHIPMENT IF ttype12 <> space. headerdeadline-time_type = ttype12. headerdeadline-time_stamp_utc = utc12. headerdeadline-time_zone = zone12. APPEND headerdeadline. ENDIF. ***** HEADERDEADLINE CURRENT D END OF SHIPMENT IF ttype13 <> space. headerdeadline-time_type = ttype13. headerdeadline-time_stamp_utc = utc13. headerdeadline-time_zone = zone13. APPEND headerdeadline. ENDIF. ************************************************************ ************************************************************ CALL FUNCTION 'BAPI_SHIPMENT_CREATE' EXPORTING headerdata = headerdata TABLES headerdeadline = headerdeadline itemdata = itemdata stagedata = stagedata stagedeadline = stagedeadline itemonstage = itemonstage address = address hdunheader = hdunheader hdunitem = hdunitem return = return. LOOP AT return. WRITE: return. ENDLOOP. *Colocar commit work para grabar
Ejemplo 2
FORM CREAR_TRANSPORTE CHANGING o_TKNUM type TKNUM o_SUBRC. data: lt_return type TABLE OF bapiret2, ls_return like LINE OF lt_return. data: ls_headerdata LIKE BAPISHIPMENTHEADER, ls_itemdata type BAPISHIPMENTITEM, lt_itemdata type TABLE OF BAPISHIPMENTITEM, ls_HEADERDEADLINE type BAPISHIPMENTHEADERDEADLINE, lt_HEADERDEADLINE type table of BAPISHIPMENTHEADERDEADLINE. ls_headerdata-SHIPMENT_TYPE = 'ZDT'. ls_headerdata-TRANS_PLAN_PT = vttk-tplst. ls_headerdata-SHIPPING_COND = vttk-vsbed. ls_headerdata-SHIPMENT_ROUTE = vttk-route. ls_headerdata-SERVICE_AGENT_ID = vttk-tdlnr. ls_headerdata-CONTAINER_ID = vttk-signi. ls_headerdata-EXTERNAL_ID_1 = vttk-exti1. ls_headerdata-status_plan = 'X'. loop at gt_likp into gs_likp where vbeln is NOT INITIAL. ls_itemdata-DELIVERY = gs_likp-vbeln. append ls_itemdata to lt_itemdata. endloop. data ld_time(14) type c. CONCATENATE sy-datum sy-timlo into ld_time. ls_HEADERDEADLINE-TIME_TYPE = 'HDRSTPLDT'. "WSHDRTDDAT move ld_time to ls_HEADERDEADLINE-TIME_STAMP_UTC. ls_HEADERDEADLINE-time_zone = 'CHILE'. append ls_HEADERDEADLINE to lt_HEADERDEADLINE. * CALL FUNCTION 'BAPI_SHIPMENT_CREATE' EXPORTING HEADERDATA = ls_headerdata IMPORTING TRANSPORT = o_TKNUM * SHIPMENTGUID = TABLES HEADERDEADLINE = lt_HEADERDEADLINE ITEMDATA = lt_itemdata RETURN = lt_return . if o_TKNUM is INITIAL. * transporte no creado o_subrc = 1. loop at lt_return into ls_return WHERE type = 'E'. exit. endloop. if sy-subrc = 0. MESSAGE ID ls_return-id TYPE 'E' NUMBER ls_return-number WITH ls_return-MESSAGE_V1 ls_return-MESSAGE_V2 ls_return-MESSAGE_V3 ls_return-MESSAGE_V4. endif. else. o_subrc = 0. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING WAIT = 'X' IMPORTING RETURN = ls_return. * GRABA TEXTOS if ls_return is INITIAL. PERform get_texts_from_screen_and_save using o_TKNUM . else. MESSAGE ID ls_return-id TYPE 'E' NUMBER ls_return-number WITH ls_return-MESSAGE_V1 ls_return-MESSAGE_V2 ls_return-MESSAGE_V3 ls_return-MESSAGE_V4. endif. message s006(VW) with o_TKNUM. ENDIF. ENDFORM. " CREAR_TRANSPORTE
Ejemplo 3 con embalaje
FORM CREAR_TRANSPORTE using i_unidad CHANGING o_TKNUM type TKNUM o_SUBRC. data: lt_return type TABLE OF bapiret2, ls_return like LINE OF lt_return. data: ls_headerdata LIKE BAPISHIPMENTHEADER, ls_itemdata type BAPISHIPMENTITEM, lt_itemdata type TABLE OF BAPISHIPMENTITEM, ls_HEADERDEADLINE type BAPISHIPMENTHEADERDEADLINE, lt_HEADERDEADLINE type table of BAPISHIPMENTHEADERDEADLINE. data: ls_HDUNHEADER LIKE BAPISHIPMENTHDUNHEADER, lt_HDUNHEADER like TABLE OF ls_HDUNHEADER, ls_HDUNITEM LIKE BAPISHIPMENTHDUNITEM, lt_HDUNITEM like TABLE OF ls_HDUNITEM. ls_headerdata-SHIPMENT_TYPE = gd_SHTYP. ls_headerdata-TRANS_PLAN_PT = vttk-tplst. ls_headerdata-SHIPPING_COND = vttk-vsbed. ls_headerdata-SHIPMENT_ROUTE = vttk-route. ls_headerdata-SERVICE_AGENT_ID = vttk-tdlnr. ls_headerdata-CONTAINER_ID = vttk-signi. ls_headerdata-EXTERNAL_ID_1 = vttk-exti1. move LIKP-ANZPK to ls_headerdata-TEXT_1. ls_headerdata-status_plan = 'X'. loop at gt_likp into gs_likp where vbeln is NOT INITIAL . ls_itemdata-DELIVERY = gs_likp-vbeln. append ls_itemdata to lt_itemdata. endloop. data ld_time(14) type c. CONCATENATE vttk-dtdis vttk-uzdis into ld_time. ls_HEADERDEADLINE-TIME_TYPE = 'HDRSTPLDT'. "WSHDRTDDAT move ld_time to ls_HEADERDEADLINE-TIME_STAMP_UTC. ls_HEADERDEADLINE-time_zone = 'CHILE'. append ls_HEADERDEADLINE to lt_HEADERDEADLINE. if i_unidad ne space. loop at gt_likp into gs_likp where vbeln is NOT INITIAL and sel = 'X'. clear ls_HDUNITEM. select vbeln posnr matnr lfimg into (ls_HDUNITEM-DELIV_NUMB,ls_HDUNITEM-DELIV_ITEM,ls_HDUNITEM-material,ls_HDUNITEM-PACK_QTY) from lips where vbeln = gs_likp-vbeln. ls_HDUNITEM-HDL_UNIT_EXID_INTO = '$0001'. append ls_HDUNITEM to lt_HDUNITEM. endselect. endloop. if sy-subrc = 0. ls_HDUNHEADER-SHIP_MAT = i_unidad. ls_HDUNHEADER-HDL_UNIT_EXID = '$0001'. append ls_HDUNHEADER to lt_HDUNHEADER. else. message E490(VW) WITH 'No se ha seleccionado ninguna Entrega'. endif. else. clear: lt_HDUNHEADER[], lt_HDUNITEM[]. endif. * CALL FUNCTION 'BAPI_SHIPMENT_CREATE' EXPORTING HEADERDATA = ls_headerdata IMPORTING TRANSPORT = o_TKNUM TABLES HEADERDEADLINE = lt_HEADERDEADLINE ITEMDATA = lt_itemdata HDUNHEADER = lt_HDUNHEADER HDUNITEM = lt_HDUNITEM RETURN = lt_return . if o_TKNUM is INITIAL. * transporte no creado o_subrc = 1. loop at lt_return into ls_return WHERE type = 'E'. exit. endloop. if sy-subrc = 0. MESSAGE ID ls_return-id TYPE 'E' NUMBER ls_return-number WITH ls_return-MESSAGE_V1 ls_return-MESSAGE_V2 ls_return-MESSAGE_V3 ls_return-MESSAGE_V4. endif. else. o_subrc = 0. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING WAIT = 'X' IMPORTING RETURN = ls_return. * GRABA TEXTOS if ls_return is INITIAL. PERform get_texts_from_screen_and_save using o_TKNUM . else. MESSAGE ID ls_return-id TYPE 'E' NUMBER ls_return-number WITH ls_return-MESSAGE_V1 ls_return-MESSAGE_V2 ls_return-MESSAGE_V3 ls_return-MESSAGE_V4. endif. message s006(VW) with o_TKNUM. ENDIF. ENDFORM. " CREAR_TRANSPORTE
Modificar Transporte
- Modificar estado transporte
DATA: l_it_header TYPE bapishipmentheader, l_it_headeraction TYPE bapishipmentheaderaction, l_it_return TYPE TABLE OF bapiret2. DATA: l_wa_return TYPE bapiret2. l_it_header-shipment_num = shipment. l_it_headeraction-shipment_num = 'X'. l_it_header-status_shpmnt_start = 'X'. l_it_headeraction-status_shpmnt_start = 'C'. CALL FUNCTION 'BAPI_SHIPMENT_CHANGE' EXPORTING headerdata = l_it_header headerdataaction = l_it_headeraction TABLES return = l_it_return.
bloquear patente ( VTTK-SIGNI )
FORM BLOQUEAR_PATENTE . data : lt_SYSTEM_STATUS type TABLE OF BAPI_ITOB_STATUS WITH HEADER LINE, lt_USER_STATUS type TABLE OF BAPI_ITOB_STATUS WITH HEADER LINE. data wa_return type bapiret2. data: l_equi type EQUNR, l_objnr type JSTO-OBJNR, l_stat_e LIKE jest-stat. move wa_vttk-signi to l_equi. CALL FUNCTION 'BAPI_EQUI_GETSTATUS' EXPORTING EQUIPMENT = l_equi IMPORTING RETURN = wa_return TABLES SYSTEM_STATUS = lt_system_status USER_STATUS = lt_user_status . if wa_return is NOT INITIAL. write:/ 'Transporte:', wa_vttk-tknum, 'Error leer estado Patente:', wa_vttk-signi, wa_return-MESSAGE(80). gd_bloqueado = co_no_aplica. return. endif. loop at lt_USER_STATUS TRANSPORTING NO FIELDS WHERE status = 'E0001'. ENDLOOP. if sy-subrc = 0. CONCATENATE 'IE' wa_vttk-signi into l_objnr. move 'E0002' to l_stat_e. CALL FUNCTION 'STATUS_CHANGE_EXTERN' EXPORTING OBJNR = l_objnr USER_STATUS = l_stat_e EXCEPTIONS OBJECT_NOT_FOUND = 1 STATUS_INCONSISTENT = 2 STATUS_NOT_ALLOWED = 3 OTHERS = 4 . IF SY-SUBRC <> 0. write:/ 'Transporte:', wa_vttk-tknum, 'Error bloqueo patente:', wa_vttk-signi. else. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING WAIT = 'X' . write:/ 'Transporte:', wa_vttk-tknum, 'Patente bloqueada con exito:', wa_vttk-signi. gd_bloqueado = co_yes. add 1 to gd_num_bloqueados. ENDIF. else. gd_bloqueado = co_no_aplica. endif. ENDFORM. " BLOQUEAR_PATENTE