Sie sind auf Seite 1von 47

REPORT zsdr_pickup_number_inquiry

MESSAGE-ID zjh01
NO STANDARD PAGE HEADING.
*& Purpose: Display all of the documents related to a pickup number.
*&
*&---------------------------------------------------------------------*
*& Author: Rudy Culaciati
*& Date:
03/28/2007
*& WO#:
62741
*& Request: E1DK905544 IT1WO62741P - Pickup number inquiry
*& Recovery: Re-transport previous working version from development.
*& Run-time: This program will display all the documents related to a
*&
pickup number.
*&
*&---------------------------------------------------------------------*
*& Revision History:
*&
Develop Work
*& Date
By
Order Transport/Description
*& ---------------------------------------------------------------------*
*& 08/07/2007 RockyC WO81181 E1DK907133
*&
Modified code to get deliveries even when
*&
there is no shipment document.
*&
*& 08/27/07
AMYK
WO81215 E1DK907504
*&
Add search help for sales order, STO,
*&
or Rail Cr/FedEx field
*&
*& 02/20/09
thanht wo3788 E1DK911124
*&
remove ord type check between orders
*&
for a pickup #
*&
*& 04/09/09
WT
WO3260 Replaced slow custom logic with standard FM
*&
*& 09/02/08
thanht wo8037
E1DK911910
*&
allow search by order number to work w/o
*&
shipment doc
*& 2012/05/14 AMYK
WO21922 E1DK915644 & E1DK915672
*&
E1DK915688 & E1DK915707
*&
Provide visibility regarding multi-stop
*&
pickup number
*&
*& 2012/12/17 AMYK
WO26083 E1DK916893 & E1DK916942
*&
- Add Super STO to JH Display Document
*&
- Move Related Info to after Super STO
*&
- Add search capibity for Load Id
*& 2013/07/11 Rajj
WO29355 E1DK918004
*&
- Add Location From The SO & STO
*& 2015/01/13 Rajj
WO37090 E2DK901564
*&
- Eliminate Duplicate Delivery Lines When No Shi
pment Doc
*&---------------------------------------------------------------------*
*eject
*--------------* Tables & Types
*--------------TABLES: sscrfields,
" Fields on selecton screens
zmanu_fm_header, " JH Manugistics Freight Movement Header
zmanu_frtcst_adj, " JH Manugistics Freight Cost Adjustments
*-----Begin Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004
ztv_header_data.

*-----End Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004


TYPES: BEGIN OF ty_freight_order,
ord_id
TYPE zmanu_fm_orddetl-ord_id,
ordtype
TYPE zmanu_fm_orddetl-ordtype,
ordtype_desc TYPE dd07t-ddtext,
miles
TYPE zmanu_fm_orddetl-miles,
weight
TYPE zmanu_fm_orddetl-weight,
stop_num
TYPE zmanu_fm_orddetl-stop_num,
END OF ty_freight_order.
TYPES: ty_freight_orders_table TYPE STANDARD TABLE OF ty_freight_order.
TYPES: BEGIN OF ty_confirmation,
bill
TYPE zmanu_fm_header-bill, "12
freight_cost_adjustment TYPE zmanu_frtcst_adj-pickup_number,
shipment
TYPE vttk-tknum,
shipment_cost
TYPE vfkp-fknum,
delivery
TYPE likp-vbeln, "10
sales_order
TYPE vbak-vbeln, "10
purchase_order
TYPE ekko-ebeln, "10
vendor
TYPE lfa1-lifnr,
document_number(12)
TYPE c,
document_desc(70)
TYPE c,
document_status
TYPE dd07t-ddtext,
additional_document(12) TYPE c,
additional_info(60)
TYPE c,
*>>Amyk 21922 Add fields to display on screen 400
stop_num
TYPE zmanudesttripstopnbr,
city
TYPE ad_city1,
state
TYPE ad_city2,
miles
TYPE zmanudistance,
cusname
TYPE name1,
ponum
TYPE bstnk,
*<< Amyk 21922
unsez
TYPE unsez, "Load ID Amyk 26083
*-----Begin Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004
loc
TYPE verkf,
*-----End Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004
END OF ty_confirmation.
TYPES: ty_confirmation_table TYPE STANDARD TABLE OF ty_confirmation.
TYPES: BEGIN OF ty_status,
bill
shipment
delivery
sales_order
purchase_order
vendor
successful_action(1)
document_number(12)
document_desc(24)
additional_document(10)
additional_info(125)
undispatch_status_icon
undispatch_status(125)
undispatch_msg(125)
END OF ty_status.

TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE

DATA: gt_screen_0200_commands
gt_freight_orders

TYPE STANDARD TABLE OF sy-ucomm,


TYPE ty_freight_orders_table,

zmanu_fm_header-bill,
vttk-tknum,
likp-vbeln,
vbak-vbeln,
ekko-ebeln,
lfa1-lifnr,
c,
c,
c,
c,
c,
icon-id,
c,
c,

gt_undispatch_confirmation TYPE ty_confirmation_table.


DATA: gt_vbfa
TYPE STANDARD TABLE OF vbfa,
gt_fm_orddetl TYPE STANDARD TABLE OF zmanu_fm_orddetl.
*-----------------------* Constants and variables
*-----------------------* global constants
CONSTANTS: gc_charx
gc_sales_order_type
gc_purchase_order_type
gc_ekko_purchase_order_type
*
gc_delivery_note
2 Clean up
*
gc_delivery_sto
2 Clean up
*

TYPE c
TYPE vttk-vbtyp
TYPE vttk-vbtyp
TYPE ekko-bstyp
TYPE ekbe-bewtp

VALUE 'X',
VALUE 'C',
VALUE 'V',
VALUE 'F',
VALUE 'L', "Amyk 2192

TYPE ekbe-vgabe VALUE '8', "Amyk 2192

ICONs
gc_yellow_exclamation_large
gc_blue_info_circle

TYPE icon-id
TYPE icon-id

VTFA document flow


gc_shipment_document
gc_delivery_document
gc_shipment_cost_document

TYPE vtfa-vbtyp_v VALUE '8',


TYPE vtfa-vbtyp_v VALUE 'J',
TYPE vtfa-vbtyp_n VALUE 'a',

Manugistics FM header button


gc_display_manu_fm_header
gc_display_manu_fm_orders
gc_display_shipment_doc
gc_display_shipment_costs_doc
gc_display_cost_adjustments
gc_enter_key
gc_execute_online
gc_execute_in_background_job
gc_save_variant
gc_print

TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE

DDIC domain names


gc_vbtyp
document type
gc_sttrg
pment status
gc_statv
ivery status
gc_zmanuloadstat
',
gc_zmanustatusflag
AG',

sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm

VALUE '@1A@',
VALUE '@19@',

VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE

'FC01',
'FC02',
'FC03',
'FC04',
'FC05',
space,
'ONLI',
'SJOB',
'SPOS',
'PRIN',

Screen 0200 commands


gc_select_cmd
gc_ord_id_field(24)
RDER-ORD_ID',
gc_0200_continue(8)
gc_0200_cancel(6)

TYPE dd07t-domname VALUE 'VBTYP', "SD


TYPE dd07t-domname VALUE 'STTRG', "shi
TYPE dd07t-domname VALUE 'STATV', "del
TYPE dd07t-domname VALUE 'ZMANULOADSTAT
TYPE dd07t-domname VALUE 'ZMANUSTATUSFL

Screen 0200 fields

TYPE sy-ucomm
TYPE c

VALUE 'SELE',
VALUE 'GWA_FREIGHT_O

TYPE c
TYPE c

VALUE '0200CONT',
VALUE '0200RW',

gc_service_agent_0200_field(27) TYPE c VALUE 'ZMANU_FM_HEADER-SUPPLIE


R_ID',
gc_approval_uname_field(30)

TYPE c VALUE 'ZMANU_FM_HEADER-APPROVA

Screen 0300 commands


gc_0300_continue(8)
gc_0300_cancel(6)

TYPE c VALUE '0300CONT',


TYPE c VALUE '0300RW',

Screen 0400 commands


gc_0400_continue(8)
gc_0400_cancel(6)
gc_0400_print(9)

TYPE c VALUE '0400CONT',


TYPE c VALUE '0400RW',
TYPE c VALUE '0400PRINT',

L_UNAME',
*

Screen 0400 fields


gc_document_number(43)
TION-DOCUMENT_NUMBER',
gc_additional_document(47)
TION-ADDITIONAL_DOCUMENT'.

TYPE c VALUE 'GWA_UNDISPATCH_CONFIRMA


TYPE c VALUE 'GWA_UNDISPATCH_CONFIRMA

* global booleans
DATA: gb_status_header(1)

TYPE c.

* global structures
DATA: gwa_screen_0200_commands
gwa_freight_order
gwa_undispatch_confirmation
gwa_vttk
gwa_vfkk

TYPE
TYPE
TYPE
TYPE
TYPE

* global variables
DATA: gv_sysid(13)

TYPE c,

gv_functxt
gv_load_status_desc
gv_status_flag_desc
gv_fknum
gv_cursor_field(50)
gv_cursor_line
gv_field_value
gv_confirmation_status(80)

TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE

"#EC *

sy-ucomm,
ty_freight_order,
ty_confirmation,
vttk,
vfkk.

smp_dyntxt,
dd07t-ddtext,
dd07t-ddtext,
vfkk-fknum,
c,
i,
ty_confirmation-document_status,
c.
"#EC NEEDED

*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
* The following declarations were created by the screen painter (SE51)
* table control wizard
* Screen 0300 table control - FM orders
*&SPWIZARD: DECLARATION OF TABLECONTROL 'TABCONT_FRTORD' ITSELF
CONTROLS: tabcont_frtord TYPE TABLEVIEW USING SCREEN 0300. "#EC *
DATA:

ok_code TYPE sy-ucomm.

*&SPWIZARD: LINES OF TABLECONTROL 'TABCONT_FRTORD'


DATA:
g_tabcont_frtord_lines TYPE sy-loopc.
"#EC *
DATA:
g_tabcont_frtord_copied.
*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
* Screen 0400 table control - FM orders
*&SPWIZARD: DECLARATION OF TABLECONTROL 'TABCONT_CONFIRM' ITSELF
CONTROLS: tabcont_confirm TYPE TABLEVIEW USING SCREEN 0400. "#EC *

*&SPWIZARD: LINES OF TABLECONTROL 'TABCONT_CONFIRM'


DATA:
g_tabcont_confirm_lines LIKE sy-loopc.

"#EC *

*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
*eject
*----------------* Selection screen
*----------------*SELECTION-SCREEN SKIP 2. "Amyk 21922
SELECTION-SCREEN SKIP 1.
"Amyk 21922
*AMYK WO81215 E1DK907504 Change Matchcode Object to ZVBILL
PARAMETERS:
p_bill TYPE zmanu_fm_header-bill
*
MATCHCODE OBJECT zbill
*<!--wo8037/E1DK911910------------------MATCHCODE OBJECT zvbill2
"#EC EXISTS
MEMORY ID zbill2.
*--wo8037/E1DK911910-------------------!>
SELECTION-SCREEN: FUNCTION
FUNCTION
FUNCTION
FUNCTION
FUNCTION

KEY
KEY
KEY
KEY
KEY

1,
2,
3,
4,
5.

"
"
"
"
"

Manugistics FM Header
Manugistics FM order detail
Shipment Document
Shipment Costs Document
Cost adjustments

*eject
*-------------------* AT SELECTION-SCREEN
*-------------------* S_BILL field edits
* Don't allow pickup number ranges, patterns or exclusions
AT SELECTION-SCREEN ON p_bill.
* ALL field edits
AT SELECTION-SCREEN.
* Don't display the screen 0200 buttons in the Warning popup
IF gt_screen_0200_commands[] IS INITIAL.
gwa_screen_0200_commands = gc_select_cmd.
APPEND gwa_screen_0200_commands TO gt_screen_0200_commands.
gwa_screen_0200_commands = gc_0200_continue.
APPEND gwa_screen_0200_commands TO gt_screen_0200_commands.
gwa_screen_0200_commands = gc_0200_cancel.
APPEND gwa_screen_0200_commands TO gt_screen_0200_commands.
ENDIF.
IF
OR
OR
OR
OR
OR
OR

sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm
sy-ucomm

=
=
=
=
=
=
=

gc_execute_online
"execute button
gc_execute_in_background_job
gc_display_manu_fm_header
gc_display_manu_fm_orders
gc_display_shipment_doc
gc_display_shipment_costs_doc
gc_display_cost_adjustments

OR sy-ucomm = gc_enter_key.
IF p_bill IS INITIAL.
*
Please specify a pickup number.
MESSAGE e071.
ENDIF.
ENDIF.
* Act on the user request
CASE sscrfields-ucomm.
WHEN gc_display_manu_fm_header.
PERFORM get_freight_movement USING p_bill.
CLEAR sscrfields-ucomm.
CLEAR sy-ucomm.
*
.

IF zmanu_fm_header IS INITIAL.
There is no Manugistics freight movement header for pickup number &1
MESSAGE e072 WITH p_bill.
ELSE.
PERFORM display_freight_movement.
ENDIF.
WHEN gc_display_manu_fm_orders.
PERFORM get_freight_orders USING p_bill.
CLEAR sscrfields-ucomm.
CLEAR sy-ucomm.

IF gt_fm_orddetl[] IS INITIAL.
There is no freight movement order detail for pickup number &1.
MESSAGE e055 WITH p_bill.
ELSE.
PERFORM display_freight_orders.
ENDIF.
WHEN gc_display_shipment_doc.
PERFORM get_shipment USING p_bill.
CLEAR sscrfields-ucomm.
CLEAR sy-ucomm.

IF gwa_vttk IS INITIAL.
Shipment document does not exist for pickup number &1.
MESSAGE e082 WITH p_bill.
ELSE.
PERFORM display_shipment_doc USING gwa_vttk-tknum.
ENDIF.
WHEN gc_display_shipment_costs_doc.
PERFORM get_shipment_costs USING
p_bill
CHANGING gv_fknum.
CLEAR sscrfields-ucomm.
CLEAR sy-ucomm.
IF gwa_vfkk IS INITIAL.

Shipment cost document does not exist for pickup number &1.
MESSAGE e084 WITH p_bill.
ELSE.
PERFORM display_shipment_costs_doc USING gv_fknum.
ENDIF.
WHEN gc_display_cost_adjustments.
PERFORM get_cost_adjustments USING p_bill.
CLEAR sscrfields-ucomm.
CLEAR sy-ucomm.

IF zmanu_frtcst_adj IS INITIAL.
There are no freight cost adjustments for pickup number &1.
MESSAGE e126 WITH p_bill.
ELSE.
PERFORM display_cost_adjustments USING p_bill.
ENDIF.
WHEN gc_save_variant
OR gc_execute_in_background_job
OR gc_print.
"don't do anything
WHEN OTHERS.
PERFORM display_related_documents.
ENDCASE.

*eject
*-------------INITIALIZATION.
*-------------* Function key FC01 - Manugistics FM Header
gv_functxt-text
= 'Manugistics FM Header'(f01).
gv_functxt-icon_id
= '@3P@'. "Header hat
gv_functxt-icon_text = 'Manugistics FM Header'(f01).
sscrfields-functxt_01 = gv_functxt.
* Function key FC02 - Manugistics FM orders
gv_functxt-text
= 'Manugistics FM Orders'(f02).
gv_functxt-icon_id
= '@3W@'. "List
gv_functxt-icon_text = 'Manugistics FM Orders'(f02).
sscrfields-functxt_02 = gv_functxt.
* Function key FC03 - Shipment document
gv_functxt-text
= 'Shipment'(f03).
gv_functxt-icon_id
= '@AR@'. "document icon
gv_functxt-icon_text = 'Shipment'(f03).
sscrfields-functxt_03 = gv_functxt.
* Function key FC04 - Shipment Costs list
gv_functxt-text
= 'Shipment Costs'(f04).
gv_functxt-icon_id
= '@FD@'. "coin
gv_functxt-icon_text = 'Shipment Costs'(f04).
sscrfields-functxt_04 = gv_functxt.

* Function key FC05 - Document flow


gv_functxt-text
= 'Cost Adjustments'(f05).
gv_functxt-icon_id
= '@Q7@'. "dollar sign
gv_functxt-icon_text = 'Cost Adjustments'(f05).
sscrfields-functxt_05 = gv_functxt.
*eject
*-----------* TOP-OF-PAGE
*-----------TOP-OF-PAGE.
* <sysid>(<client>)
CONCATENATE sy-sysid '(' sy-mandt ')' INTO gv_sysid.
* Runtime information:
WRITE:/
'User:'(017), sy-uname,
42 sy-title,
107 'Date:'(018), sy-datum,
/
'System:'(019), gv_sysid,
107 'Time:'(020), sy-uzeit.
SKIP 1.
* Column headers:
WRITE:/
'Document'(022),
15 'Description'(023),
80 'Status'(024).
WRITE:/ sy-uline.
*eject
*------------------* START-OF-SELECTION
*------------------START-OF-SELECTION.
*eject
*-----------* PBO MODULEs
*-----------*&---------------------------------------------------------------------*
*&
Module TABCONT_FRTORD_INIT OUTPUT
*&---------------------------------------------------------------------*
MODULE tabcont_frtord_init OUTPUT.
IF g_tabcont_frtord_copied IS INITIAL.
*&SPWIZARD: COPY DDIC-TABLE 'ZMANU_FRTCST_ADJ'
*&SPWIZARD: INTO INTERNAL TABLE 'g_TABCONT_FRTADJ_itab'
SELECT * FROM zmanu_fm_orddetl
INTO CORRESPONDING FIELDS
OF TABLE gt_freight_orders
WHERE bill = p_bill.
IF sy-subrc = 0.
PERFORM set_ordtype_description TABLES gt_freight_orders.
ENDIF.

g_tabcont_frtord_copied = 'X'.
REFRESH CONTROL 'TABCONT_FRTORD' FROM SCREEN '0300'.
ELSE.
ENDIF.
ENDMODULE.

" TABCONT_FRTORD_INIT OUTPUT

*&---------------------------------------------------------------------*
*&
Module STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
MODULE status_0200 OUTPUT.
SET PF-STATUS 'SCREEN_0200'.
SET TITLEBAR 'TITLE_SCREEN_0200' WITH p_bill.
ENDMODULE.

" STATUS_0200 OUTPUT

*&---------------------------------------------------------------------*
*&
Module STATUS_0300 OUTPUT
*&---------------------------------------------------------------------*
MODULE status_0300 OUTPUT.
SET PF-STATUS 'SCREEN_0300'.
SET TITLEBAR 'TITLE_SCREEN_0300' WITH p_bill.
ENDMODULE.

" STATUS_0300 OUTPUT

*&---------------------------------------------------------------------*
*&
Module STATUS_0400 OUTPUT
*&---------------------------------------------------------------------*
MODULE status_0400 OUTPUT.
SET PF-STATUS 'SCREEN_0400'.
SET TITLEBAR 'TITLE_SCREEN_0400' WITH p_bill.
ENDMODULE.

" STATUS_0400 OUTPUT

*&---------------------------------------------------------------------*
*&
Module TABCONT_FRTORD_CHANGE_TC_ATTR OUTPUT
*&---------------------------------------------------------------------*
*&SPWIZARD: OUTPUT MODULE FOR TC 'TABCONT_FRTORD'. DO NOT CHANGE THIS LI
*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE tabcont_frtord_change_tc_attr OUTPUT.
DESCRIBE TABLE gt_freight_orders LINES tabcont_frtord-lines.
ENDMODULE.
" TABCONT_FRTORD_CHANGE_TC_ATTR OUTPUT
*&---------------------------------------------------------------------*
*&
Module TABCONT_FRTORD_GET_LINES OUTPUT
*&---------------------------------------------------------------------*
*&SPWIZARD: OUTPUT MODULE FOR TC 'TABCONT_FRTORD'. DO NOT CHANGE THIS LI
*&SPWIZARD: GET LINES OF TABLECONTROL

MODULE tabcont_frtord_get_lines OUTPUT.


g_tabcont_frtord_lines = sy-loopc.
ENDMODULE.
" TABCONT_FRTORD_GET_LINES OUTPUT
*&---------------------------------------------------------------------*
*&
Module TABCONT_CONFIRM_CHANGE_TC_ATTR OUTPUT
*&---------------------------------------------------------------------*
*&SPWIZARD: OUTPUT MODULE FOR TC 'TABCONT_CONFIRM'. DO NOT CHANGE THIS L
*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE tabcont_confirm_change_tc_attr OUTPUT.
DESCRIBE TABLE gt_undispatch_confirmation LINES tabcont_confirm-lines.
ENDMODULE.

" TABCONT_CONFIRM_CHANGE_TC_ATTR OUTPUT

*&---------------------------------------------------------------------*
*&
Module TABCONT_CONFIRM_GET_LINES OUTPUT
*&---------------------------------------------------------------------*
*&SPWIZARD: OUTPUT MODULE FOR TC 'TABCONT_CONFIRM'. DO NOT CHANGE THIS L
*&SPWIZARD: GET LINES OF TABLECONTROL
MODULE tabcont_confirm_get_lines OUTPUT.
g_tabcont_confirm_lines = sy-loopc.
ENDMODULE.
" TABCONT_CONFIRM_GET_LINES OUTPUT
*eject
*-----------* PAI MODULEs
*-----------*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
MODULE user_command_0200 INPUT.
CASE sy-ucomm.
WHEN gc_select_cmd.
PERFORM process_select_command.
WHEN gc_0200_continue
OR gc_0200_cancel.
SET SCREEN 0000.
ENDCASE.
ENDMODULE.

" USER_COMMAND_0200 INPUT

*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0300 INPUT
*&---------------------------------------------------------------------*
MODULE user_command_0300 INPUT.
CASE sy-ucomm.
WHEN gc_select_cmd.
PERFORM process_select_command.

WHEN gc_0300_continue
OR gc_0300_cancel.
exit the screen

CLEAR g_tabcont_frtord_copied.
SET SCREEN 0000.
ENDCASE.
ENDMODULE.

" USER_COMMAND_0300 INPUT

*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0400 INPUT
*&---------------------------------------------------------------------*
MODULE user_command_0400 INPUT.
CASE sy-ucomm.
WHEN gc_select_cmd.
PERFORM process_select_command.

WHEN gc_0400_continue
OR gc_0400_cancel.
exit the screen
SET SCREEN 0000.
WHEN gc_0400_print.
PERFORM print_undispatch_confirmation.
ENDCASE.

ENDMODULE.

" USER_COMMAND_0400 INPUT

*&---------------------------------------------------------------------*
*&
Module TABCONT_FRTORD_USER_COMMAND INPUT
*&---------------------------------------------------------------------*
*&SPWIZARD: INPUT MODULE FOR TC 'TABCONT_FRTORD'. DO NOT CHANGE THIS LIN
*&SPWIZARD: PROCESS USER COMMAND
MODULE tabcont_frtord_user_command INPUT.
ok_code = sy-ucomm.
PERFORM user_ok_tc USING
'TABCONT_FRTORD'
'GT_FREIGHT_ORDERS'
' '
CHANGING ok_code.
sy-ucomm = ok_code.
ENDMODULE.
" TABCONT_FRTORD_USER_COMMAND INPUT
*&---------------------------------------------------------------------*
*&
Module TABCONT_CONFIRM_USER_COMMAND INPUT
*&---------------------------------------------------------------------*
*&SPWIZARD: INPUT MODULE FOR TC 'TABCONT_CONFIRM'. DO NOT CHANGE THIS LI
*&SPWIZARD: PROCESS USER COMMAND
MODULE tabcont_confirm_user_command INPUT.
ok_code = sy-ucomm.
PERFORM user_ok_tc USING
'TABCONT_CONFIRM'
'GT_UNDISPATCH_CONFIRMATION'
' '
CHANGING ok_code.
sy-ucomm = ok_code.
ENDMODULE.
" TABCONT_CONFIRM_USER_COMMAND INPUT
*eject

*----------------------------------------------------------------------*
* INCLUDE TABLECONTROL_FORMS
*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Form USER_OK_TC
*
*&---------------------------------------------------------------------*
FORM user_ok_tc USING
p_tc_name TYPE dynfnam
p_table_name TYPE any
"#EC *
p_mark_name TYPE any
"#EC *
CHANGING p_ok
LIKE sy-ucomm.
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
DATA: l_ok
TYPE sy-ucomm,
l_offset
TYPE i.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*
*&SPWIZARD: Table control specific operations
*&SPWIZARD: evaluate TC name and operations
SEARCH p_ok FOR p_tc_name.
IF sy-subrc <> 0.
EXIT.
ENDIF.
l_offset = strlen( p_tc_name ) + 1.
l_ok = p_ok+l_offset.
*&SPWIZARD: execute general and TC specific operations
CASE l_ok.
WHEN 'INSR'.
"insert row
*
PERFORM FCODE_INSERT_ROW USING
P_TC_NAME
*
P_TABLE_NAME.
*
CLEAR P_OK.
*
*
*
*

WHEN 'DELE'.
"delete row
PERFORM FCODE_DELETE_ROW USING
P_TC_NAME
P_TABLE_NAME
P_MARK_NAME.
CLEAR P_OK.
WHEN 'P--' OR
'P-' OR
'P+' OR
'P++'.
PERFORM compute_scrolling_in_tc

*
*
*
*
*
*
*
*
*
*
*
*
*
*

"top of list
"previous page
"next page
"bottom of list
USING p_tc_name
l_ok.

CLEAR p_ok.
WHEN 'L--'.
"total left
PERFORM FCODE_TOTAL_LEFT USING P_TC_NAME.
WHEN 'L-'.
"column left
PERFORM FCODE_COLUMN_LEFT USING P_TC_NAME.
WHEN 'R+'.
"column right
PERFORM FCODE_COLUMN_RIGHT USING P_TC_NAME.
WHEN 'R++'.
"total right
PERFORM FCODE_TOTAL_RIGHT USING P_TC_NAME.
WHEN 'MARK'.
"mark all filled lines
PERFORM FCODE_TC_MARK_LINES USING P_TC_NAME
P_TABLE_NAME

*
*

*
*
*
*
*
*
*
*
*
*

P_MARK_NAME

CLEAR P_OK.
WHEN 'DMRK'.
"demark all filled lines
PERFORM FCODE_TC_DEMARK_LINES USING P_TC_NAME
P_TABLE_NAME
P_MARK_NAME .
CLEAR P_OK.
WHEN 'SASCEND' OR
'SDESCEND'.
"sort column
PERFORM FCODE_SORT_TC USING P_TC_NAME
l_ok.
ENDCASE.

ENDFORM.
" USER_OK_TC
*eject
*&---------------------------------------------------------------------*
*&
Form COMPUTE_SCROLLING_IN_TC
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_TC_NAME name of tablecontrol
*
-->P_OK
ok code
*----------------------------------------------------------------------*
FORM compute_scrolling_in_tc USING
p_tc_name TYPE any
p_ok
TYPE any.
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
DATA l_tc_new_top_line
TYPE i.
DATA l_tc_name
TYPE feld-name.
DATA l_tc_lines_name
TYPE feld-name.
DATA l_tc_field_name
TYPE feld-name.
FIELD-SYMBOLS <tc>
TYPE cxtab_control.
FIELD-SYMBOLS <lines>
TYPE i.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*
ASSIGN (p_tc_name) TO <tc>.
*&SPWIZARD: get looplines of TableControl
CONCATENATE 'G_' p_tc_name '_LINES' INTO l_tc_lines_name.
ASSIGN (l_tc_lines_name) TO <lines>.
*&SPWIZARD: is no line filled?
IF <tc>-lines = 0.
*&SPWIZARD: yes, ...
l_tc_new_top_line = 1.
ELSE.
*&SPWIZARD: no, ...
CALL FUNCTION 'SCROLLING_IN_TABLE'
EXPORTING
entry_act
= <tc>-top_line
entry_from
= 1
entry_to
= <tc>-lines
last_page_full
= 'X'
loops
= <lines>
ok_code
= p_ok
overlapping
= 'X'
IMPORTING

*
*
*

entry_new
EXCEPTIONS
*
NO_ENTRY_OR_PAGE_ACT
*
NO_ENTRY_TO
*
NO_OK_CODE_OR_PAGE_GO
OTHERS
ENDIF.

= l_tc_new_top_line
=
=
=
=

01
02
03
0.

*&SPWIZARD: get actual tc and column


GET CURSOR FIELD l_tc_field_name
AREA l_tc_name.

IF syst-subrc = 0.
IF l_tc_name = p_tc_name.
*&SPWIZARD: set actual column
SET CURSOR FIELD l_tc_field_name LINE 1.
ENDIF.
ENDIF.
*&SPWIZARD: set the new top line
<tc>-top_line = l_tc_new_top_line.

ENDFORM.
" COMPUTE_SCROLLING_IN_TC
*eject
*&---------------------------------------------------------------------*
*&
Form display_related_documents
*&---------------------------------------------------------------------*
FORM display_related_documents.
* local variables
DATA: lv_continue(1)

TYPE c.

* get all the related documents


PERFORM get_related_documents USING p_bill.
* display the documents
PERFORM display_documents CHANGING lv_continue.
ENDFORM.
" display_related_documents
*eject
*&---------------------------------------------------------------------*
*&
Form get_related_documents
*&---------------------------------------------------------------------*
FORM get_related_documents USING p_bill TYPE any.
DATA: lv_shipment_cost_number TYPE vfkk-fknum,
lv_ordtype
TYPE zmanu_fm_orddetl-ordtype.
* Check for shipment document
PERFORM get_shipment USING p_bill.
* Check for shipping cost document
PERFORM get_costs_via_document_flow USING

p_bill
space "don't display a warning
CHANGING lv_shipment_cost_number.

* get freight cost adjustments


PERFORM get_cost_adjustments USING p_bill.
* get ZMANU_FM_HEADER
PERFORM get_freight_movement USING p_bill.
* get ZMANU_FM_ORDDETL
PERFORM get_freight_orders USING p_bill.
* check ZMANU_FM_ORDDETL consistency
PERFORM check_for_order_consistency USING
p_bill
CHANGING lv_ordtype.
* get deliveries
PERFORM get_deliveries USING gwa_vttk-tknum.
ENDFORM.
" get_related_documents
*eject
*&---------------------------------------------------------------------*
*&
Form get_freight_movement
*&---------------------------------------------------------------------*
FORM get_freight_movement USING p_bill TYPE any.
*-----Begin Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004
CLEAR: zmanu_fm_header, ztv_header_data.
*-----End Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004
SELECT SINGLE * FROM zmanu_fm_header INTO zmanu_fm_header
WHERE bill = p_bill.
IF sy-subrc = 0.
PERFORM get_status_descriptions USING
zmanu_fm_header-load_status
zmanu_fm_header-status_flag
zmanu_fm_header-web_status
CHANGING gv_load_status_desc
gv_status_flag_desc.
ENDIF.
*-----Begin Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004
*-----Data Fetch To Get Truck Scanning Header
SELECT SINGLE *
FROM ztv_header_data
WHERE bill = p_bill.
*-----End Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004
ENDFORM.
" get_freight_movement
*eject
*&---------------------------------------------------------------------*
*&
Form get_shipment
*&---------------------------------------------------------------------*
FORM get_shipment USING p_bill TYPE any.
* local variables
DATA: lv_exti1 TYPE vttk-exti1.
CLEAR gwa_vttk.

lv_exti1 = p_bill.
* How many shipment docs are there?
SELECT COUNT(*) FROM vttk
WHERE exti1 = lv_exti1.
IF sy-subrc = 0.
IF sy-dbcnt > 1.
*
There are & shipment documents assigned to pickup number &.
MESSAGE e080 WITH sy-dbcnt lv_exti1.
ELSE.
SELECT SINGLE * FROM vttk INTO gwa_vttk
WHERE exti1 = lv_exti1.
ENDIF.
ENDIF.

"#EC *

ENDFORM.
" get_shipment
*eject
*&---------------------------------------------------------------------*
*&
Form get_shipment_costs
*&---------------------------------------------------------------------*
FORM get_shipment_costs USING
p_bill
TYPE any
CHANGING p_shipment_cost_number TYPE any.
* local variables
DATA: lv_exti1 TYPE vttk-exti1,
lv_fknum TYPE vfkk-fknum,
lv_count TYPE i.
CLEAR gwa_vfkk.
lv_exti1 = p_bill.
CLEAR lv_count.
* How many shipment cost docs are there for the pickup number?
SELECT COUNT( DISTINCT fknum ) FROM vfkp INTO lv_count
WHERE exti1 = lv_exti1.
IF lv_count > 0.
IF lv_count > 1.
*
There are & shipment cost documents assigned to pickup number &.
MESSAGE e083 WITH lv_count lv_exti1.
ELSE.
SELECT SINGLE fknum FROM vfkp INTO lv_fknum
WHERE exti1 = lv_exti1.
IF sy-subrc = 0.
PERFORM check_external_references USING lv_fknum
lv_exti1.

"#EC *

p_shipment_cost_number = lv_fknum.
ENDIF.
ENDIF.
ELSE.
*

There is no shipment cost with the specified pickup number.

*
*

Check if there is a shipment with the pickup number and then


look for a shipment cost document in its document flow.
PERFORM get_costs_via_document_flow USING
lv_exti1
'X' "display warning
CHANGING p_shipment_cost_number.
ENDIF.

ENDFORM.
" get_shipment
*eject
*&---------------------------------------------------------------------*
*&
Form get_cost_adjustments
*&---------------------------------------------------------------------*
FORM get_cost_adjustments USING
p_bill TYPE any.
CLEAR zmanu_frtcst_adj.
* Are there freight cost adjustments for the pickup number?
SELECT SINGLE * FROM zmanu_frtcst_adj INTO zmanu_frtcst_adj "#EC *
WHERE pickup_number = p_bill.
ENDFORM.
" get_cost_adjustments
*eject
*&---------------------------------------------------------------------*
*&
Form check_external_references
*&---------------------------------------------------------------------*
FORM check_external_references USING p_fknum
TYPE any
p_pickup_number TYPE any.
DATA: lv_tknum
lv_shipment_pickup_number
lv_ucomm
lv_msg1(55)
lv_msg2(55)

TYPE
TYPE
TYPE
TYPE
TYPE

vttk-tknum,
vttk-exti1,
sy-ucomm,
c,
c.

* get the shipment document from the shipment cost document flow
SELECT SINGLE vbelv FROM vtfa INTO lv_tknum
"#EC *
WHERE vbeln = p_fknum
AND vbtyp_v = gc_shipment_document
AND vbtyp_n = gc_shipment_cost_document.
*

IF sy-subrc = 0.
check if the external references match
SELECT SINGLE exti1 FROM vttk INTO lv_shipment_pickup_number
WHERE tknum = lv_tknum.
IF lv_shipment_pickup_number = p_pickup_number.
SELECT SINGLE * FROM vfkk INTO gwa_vfkk
WHERE fknum = p_fknum.

ELSE.
Shipment cost & has pickup number &.
MESSAGE e085 WITH p_fknum p_pickup_number
INTO lv_msg1.
IF lv_shipment_pickup_number IS INITIAL.
Shipment & does not have a pickup number.
MESSAGE e086 WITH lv_tknum
INTO lv_msg2.

ELSE.
*

Shipment & has pickup number &.


MESSAGE e087 WITH lv_tknum
lv_shipment_pickup_number
INTO lv_msg2.
ENDIF.

save the current command because the popup set it to 'GOON'


lv_ucomm = sy-ucomm.

Don't display the screen 0200 buttons in the Warning popup


SET PF-STATUS 'SCREEN_0200' EXCLUDING gt_screen_0200_commands.
CALL FUNCTION
EXPORTING
textline1
textline2
titel

'POPUP_WITH_WARNING'
= lv_msg1
= lv_msg2
= 'Warning'(010).

set the command back to the previous command


sy-ucomm = lv_ucomm.
ENDIF.
ENDIF.

ENDFORM.
" check_external_references
*eject
*&---------------------------------------------------------------------*
*&
Form get_costs_via_document_flow
*&---------------------------------------------------------------------*
FORM get_costs_via_document_flow USING
p_pickup_number
TYPE any
pb_display_warning
TYPE any
CHANGING p_shipment_cost_number TYPE any.
DATA: lv_tknum
lv_fknum
lv_shipment_cost_pickup_number
lv_ucomm
lv_msg1(55)
lv_msg2(55)

TYPE
TYPE
TYPE
TYPE
TYPE
TYPE

vttk-tknum,
vfkk-fknum,
vttk-exti1,
sy-ucomm,
c,
c.

CLEAR gwa_vfkk.
CLEAR p_shipment_cost_number.
* find the shipment document
SELECT SINGLE tknum FROM vttk INTO lv_tknum
WHERE exti1 = p_pickup_number.
*

"#EC *

IF sy-subrc = 0.
get the shipment cost document from the shipment document flow
SELECT SINGLE vbeln FROM vtfa INTO lv_fknum
"#EC *
WHERE vbelv = lv_tknum
AND vbtyp_v = gc_shipment_document
AND vbtyp_n = gc_shipment_cost_document.
IF sy-subrc = 0.
p_shipment_cost_number = lv_fknum.

get the shipment cost pickup number


PERFORM get_shipment_cost_pickup_num
USING
lv_fknum
CHANGING lv_shipment_cost_pickup_number.

check if the external references match


IF lv_shipment_cost_pickup_number = p_pickup_number.
SELECT SINGLE * FROM vfkk INTO gwa_vfkk
WHERE fknum = lv_fknum.
ELSE.

Shipment & has pickup number &.


MESSAGE e087 WITH lv_tknum
p_pickup_number
INTO lv_msg1.
IF lv_shipment_cost_pickup_number IS INITIAL.
Shipment cost & does not have a pickup number.
MESSAGE e088 WITH lv_fknum
INTO lv_msg2.
ELSE.
Shipment cost & has pickup number &.
MESSAGE e085 WITH lv_fknum lv_shipment_cost_pickup_number
INTO lv_msg2.
ENDIF.

IF NOT pb_display_warning IS INITIAL.


save the current command because the popup sets it to 'GOON'
lv_ucomm = sy-ucomm.

Don't display the screen 0200 buttons in the Warning popup


SET PF-STATUS 'SCREEN_0200' EXCLUDING gt_screen_0200_commands.
CALL FUNCTION
EXPORTING
textline1
textline2
titel

'POPUP_WITH_WARNING'
= lv_msg1
= lv_msg2
= 'Warning'(010).

set the command back to the previous command


sy-ucomm = lv_ucomm.
ENDIF.
ENDIF.
ENDIF.
ENDIF.

ENDFORM.
" get_costs_via_document_flow
*eject
*&---------------------------------------------------------------------*
*&
Form get_status_descriptions
*&---------------------------------------------------------------------*
FORM get_status_descriptions USING
p_load_status
TYPE any
p_status_flag
TYPE any
p_web_status
TYPE any
CHANGING p_load_status_desc TYPE any
p_status_flag_desc TYPE any.
* load status description
PERFORM get_domain_value_description USING

gc_zmanuloadstat

p_load_status
CHANGING p_load_status_desc.
* get the status flag description if the web status text isn't set
IF p_web_status IS INITIAL.
PERFORM get_domain_value_description USING
gc_zmanustatusflag
p_status_flag
CHANGING p_status_flag_desc.
ELSE.
p_status_flag_desc = p_web_status.
ENDIF.
ENDFORM.
" get_status_descriptions
*eject
*&---------------------------------------------------------------------*
*&
Form get_domain_value_description
*&---------------------------------------------------------------------*
FORM get_domain_value_description USING
p_domain_name
TYPE any
p_domain_value
TYPE any
CHANGING p_domain_value_desc TYPE any.
* local variables
DATA: lv_domain_value TYPE dd07t-domvalue_l.
CLEAR p_domain_value_desc.
lv_domain_value = p_domain_value.
CALL FUNCTION 'SHOW_DOMAIN_VALUES'
EXPORTING
domain
= p_domain_name
langu
= sy-langu
value
= lv_domain_value
IMPORTING
dtext
= p_domain_value_desc
* TABLES
*
DTEXT_TABLE
=
EXCEPTIONS
undefined_domain
= 1
OTHERS
= 2.
*
*

IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDFORM.
" get_domain_value_description
*eject
*&---------------------------------------------------------------------*
*&
Form display_freight_movement
*&---------------------------------------------------------------------*
FORM display_freight_movement .
CALL SCREEN 0200 STARTING AT 10 5 ENDING AT 102 20.
ENDFORM.
" display_freight_movement
*eject
*&---------------------------------------------------------------------*
*&
Form display_shipment_doc

*&---------------------------------------------------------------------*
FORM display_shipment_doc USING p_shipment_number TYPE any.
* Invoke transaction VT03N to display the shipping document
SET PARAMETER ID 'TNR' FIELD p_shipment_number.
CALL TRANSACTION 'VT03N' AND SKIP FIRST SCREEN.
ENDFORM.
" display_shipment_doc
*eject
*&---------------------------------------------------------------------*
*&
Form display_shipment_costs_doc
*&---------------------------------------------------------------------*
FORM display_shipment_costs_doc USING p_shipment_cost_number TYPE any.
* Invoke transaction VI03 to display the shipping cost document
SET PARAMETER ID 'FKK' FIELD p_shipment_cost_number.
CALL TRANSACTION 'VI03' AND SKIP FIRST SCREEN.
ENDFORM.
" display_shipment_costs_doc
*eject
*&---------------------------------------------------------------------*
*&
Form display_cost_adjustments
*&---------------------------------------------------------------------*
FORM display_cost_adjustments USING p_pickup_number TYPE any.
* Invoke program ZTME_MANU_FREIGHT_COST_ADJ
PERFORM submit_freight_cost_adj USING p_pickup_number.
ENDFORM.
" display_cost_adjustments
*eject
*&---------------------------------------------------------------------*
*&
Form submit_freight_cost_adj
*&---------------------------------------------------------------------*
FORM submit_freight_cost_adj USING p_pickup_number TYPE any.
* local booleans
DATA: lb_invalid_program(1) TYPE c.
* local variables
DATA: lv_repid

TYPE sy-repid.

lv_repid = 'ZTME_MANU_FREIGHT_COST_ADJ'.
* The SUBMIT statement will short-dump if the program does
* not exist so check it here first
PERFORM check_program_name USING
lv_repid
CHANGING lb_invalid_program.
IF lb_invalid_program IS INITIAL.
SUBMIT (lv_repid)
WITH p_pcknum = p_pickup_number "pickup number
WITH p_donly = 'X'
"display only
AND RETURN.
ENDIF.
ENDFORM.
*eject

" submit_freight_cost_adj

*&---------------------------------------------------------------------*
*&
Form process_select_command
*&---------------------------------------------------------------------*
FORM process_select_command .
* local variables
DATA: lv_bname TYPE usr03-bname.
GET CURSOR FIELD gv_cursor_field VALUE gv_field_value
LINE gv_cursor_line.
CASE gv_cursor_field.
WHEN gc_service_agent_0200_field.
IF gv_field_value IS INITIAL.
*
Service agent cannot be determined.
MESSAGE e068.
ELSE.
*
Invoke transaction FK03 to display the forwarding agent
PERFORM display_service_agent USING gv_field_value.
ENDIF.

*
*
*
*
*
*
*

WHEN gc_approval_uname_field.
lv_bname = gv_field_value.
IF NOT lv_bname IS INITIAL.
CALL FUNCTION 'SUSR_SHOW_USER_DETAILS'
EXPORTING
bname = lv_bname.
MANDT
= SY-MANDT
NO_DISPLAY
=
IMPORTING
OKCODE
=
ADDR_USR
=
CHANGING
USER_USR03
=
ENDIF.
WHEN gc_document_number
OR gc_additional_document.
PERFORM confirm_display_transaction USING gv_cursor_field
gv_field_value.
WHEN gc_ord_id_field.
PERFORM order_display_transaction USING gv_field_value.
ENDCASE.

* The SUSR_SHOW_USER_DETAILS call changes the value of SY-UCOMM


* Set it back to the expected value
sy-ucomm = gc_select_cmd.
ENDFORM.
" process_select_command
*eject
*&---------------------------------------------------------------------*
*&
Form display_service_agent
*&---------------------------------------------------------------------*
FORM display_service_agent USING
p_field_value TYPE any.
SET PARAMETER ID 'KDY' FIELD '/111'. "display the address

SET PARAMETER ID 'LIF' FIELD p_field_value.


CALL TRANSACTION 'FK03' AND SKIP FIRST SCREEN.
ENDFORM.
" display_service_agent
*eject
*&---------------------------------------------------------------------*
*&
Form get_freight_orders
*&---------------------------------------------------------------------*
FORM get_freight_orders USING p_bill TYPE any.
REFRESH gt_fm_orddetl.
SELECT * FROM zmanu_fm_orddetl
INTO TABLE gt_fm_orddetl
WHERE bill = p_bill.
ENDFORM.
" get_freight_movement
*eject
*&---------------------------------------------------------------------*
*&
Form display_freight_orders
*&---------------------------------------------------------------------*
FORM display_freight_orders.
CALL SCREEN 0300 STARTING AT 10 5 ENDING AT 83 20.
ENDFORM.
" display_freight_movement
*eject
*&---------------------------------------------------------------------*
*&
Form set_ordtype_description
*&---------------------------------------------------------------------*
FORM set_ordtype_description TABLES pt_freight_orders
TYPE ty_freight_orders_table.
DATA: lwa_freight_order TYPE ty_freight_order.
DATA: lv_domain_value
TYPE dd07t-domvalue_l,
lv_domain_value_desc TYPE dd07t-ddtext.
* get the order type description for display
LOOP AT pt_freight_orders INTO lwa_freight_order.
*

*
*

order type description


lv_domain_value = lwa_freight_order-ordtype.
CLEAR lv_domain_value_desc.
IF NOT lv_domain_value IS INITIAL.
CALL FUNCTION 'SHOW_DOMAIN_VALUES'
EXPORTING
domain
= gc_vbtyp
langu
= sy-langu
value
= lv_domain_value
IMPORTING
dtext
= lv_domain_value_desc
TABLES
DTEXT_TABLE
=
EXCEPTIONS
undefined_domain
= 1
OTHERS
= 2.

IF sy-subrc <> 0.
lv_domain_value_desc = 'Unknown order type'(027).
ENDIF.
lwa_freight_order-ordtype_desc = lv_domain_value_desc.
MODIFY pt_freight_orders FROM lwa_freight_order
TRANSPORTING ordtype_desc.
ENDIF.
ENDLOOP.
ENDFORM.
" set_ordtype_description
*eject
*&---------------------------------------------------------------------*
*&
Form confirm_display_transaction
*&---------------------------------------------------------------------*
FORM confirm_display_transaction USING p_field_name TYPE any
p_field_value TYPE any.
* local variables
DATA: lwa_undispatch_confirmation TYPE ty_confirmation.

*
*
*

IF p_field_name = gc_document_number.
a 'Document' column field was selected
READ TABLE gt_undispatch_confirmation
INTO lwa_undispatch_confirmation
WITH KEY document_number = p_field_value.
IF NOT lwa_undispatch_confirmation-bill IS INITIAL.
The freight movement header and cost adjustments have the same
document number so we should read the table by index instead
to ensure we are getting the correct entry.
READ TABLE gt_undispatch_confirmation
INTO lwa_undispatch_confirmation
INDEX gv_cursor_line.
ENDIF.
Display the document based on the document number set
IF NOT lwa_undispatch_confirmation-bill
IS INITIAL
AND
lwa_undispatch_confirmation-freight_cost_adjustment IS INITIAL.
PERFORM display_freight_movement.

ELSEIF NOT lwa_undispatch_confirmation-freight_cost_adjustment IS INITIAL.


SUBMIT program ZTME_MANU_FREIGHT_COST_ADJ to display the adjustments
PERFORM display_cost_adjustments
USING lwa_undispatch_confirmation-freight_cost_adjustment.

ELSEIF NOT lwa_undispatch_confirmation-shipment IS INITIAL.


Invoke transaction VT03N to display the shipping document
SET PARAMETER ID 'TNR' FIELD lwa_undispatch_confirmation-shipment.
CALL TRANSACTION 'VT03N' AND SKIP FIRST SCREEN.

ELSEIF NOT lwa_undispatch_confirmation-shipment_cost IS INITIAL.


Invoke VI03 to display the shipment cost document
PERFORM display_shipment_costs_doc
USING lwa_undispatch_confirmation-shipment_cost.
ELSEIF NOT lwa_undispatch_confirmation-sales_order IS INITIAL

AND lwa_undispatch_confirmation-sales_order =
lwa_undispatch_confirmation-document_number.
Invoke transaction VA03 to display the order
SET PARAMETER ID 'AUN' FIELD lwa_undispatch_confirmation-sales_order.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.

ELSEIF NOT lwa_undispatch_confirmation-purchase_order IS INITIAL


AND lwa_undispatch_confirmation-purchase_order =
lwa_undispatch_confirmation-document_number.
Invoke transaction ME23N to display the purchase order
SET PARAMETER ID 'BES' FIELD lwa_undispatch_confirmation-purchase_order.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

ELSEIF NOT lwa_undispatch_confirmation-delivery IS INITIAL.


Invoke transaction VL03N to display the delivery document
SET PARAMETER ID 'VL' FIELD lwa_undispatch_confirmation-delivery.
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
ENDIF.

ELSEIF p_field_name = gc_additional_document.


an 'Related Docs' column field was selected
READ TABLE gt_undispatch_confirmation
INTO lwa_undispatch_confirmation
WITH KEY additional_document = p_field_value.

IF NOT lwa_undispatch_confirmation-sales_order IS INITIAL.


Invoke transaction VA03 to display the sales order
SET PARAMETER ID 'AUN' FIELD lwa_undispatch_confirmation-sales_order.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.

ELSEIF NOT lwa_undispatch_confirmation-purchase_order IS INITIAL.


Invoke transaction ME23N to display the purchase order
SET PARAMETER ID 'BES' FIELD lwa_undispatch_confirmation-purchase_order.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

ELSEIF NOT lwa_undispatch_confirmation-vendor IS INITIAL.


Invoke transaction FK03 to display the forwarding agent
PERFORM display_service_agent USING lwa_undispatch_confirmation-vendor.
ENDIF.
ENDIF.

ENDFORM.
" confirm_display_transaction
*eject
*&---------------------------------------------------------------------*
*&
Form get_deliveries
*&---------------------------------------------------------------------*
FORM get_deliveries USING p_shipment_document TYPE any.
*rockyc
DATA
DATA
DATA
DATA

wo81181 v
lt_orders
lv_orders
lv_vbfa
lv_vbeln

TYPE
TYPE
TYPE
TYPE

TABLE OF zmanu_fm_orddetl.
zmanu_fm_orddetl.
vbfa.
vbak-vbeln.

REFRESH gt_vbfa.
IF p_shipment_document IS INITIAL.

SELECT
INTO
FROM
WHERE

*
TABLE lt_orders
zmanu_fm_orddetl
bill EQ p_bill.

CHECK sy-subrc EQ 0.
LOOP AT lt_orders INTO lv_orders.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_orders-ord_id
IMPORTING
output = lv_vbeln.
*-----Begin Of Changes For WO:37090 By Rajj On 01/13/2015 Transport#E2DK901564
*get the deliveries from the document flow
SELECT SINGLE *
INTO lv_vbfa
FROM vbfa
WHERE vbelv EQ lv_vbeln
AND vbtyp_n EQ gc_delivery_document.
*move the delivery document to VBELV which is
*later used in the program
IF sy-subrc EQ 0.
lv_vbfa-vbelv = lv_vbfa-vbeln.
APPEND lv_vbfa TO gt_vbfa.
ENDSELECT.
ENDIF.
*-----End Of Changes For WO:37090 By Rajj On 01/13/2015 Transport#E2DK901564
*

ENDLOOP.
ELSE.
*get the deliveries from the document flow
SELECT *
INTO TABLE gt_vbfa
FROM vbfa
WHERE vbeln EQ p_shipment_document
AND vbtyp_v EQ gc_delivery_document
AND vbtyp_n EQ gc_shipment_document.
ENDIF.
*rockyc wo81181 ^
ENDFORM.
" get_deliveries
*eject
*&---------------------------------------------------------------------*
*&
Form check_for_order_consistency
*&---------------------------------------------------------------------*
FORM check_for_order_consistency USING
p_bill
TYPE any
CHANGING p_ordtype TYPE any.
* local tables
DATA: lt_orddetl TYPE STANDARD TABLE OF zmanu_fm_orddetl.
* local booleans
DATA: lb_purchase_order_found TYPE c,
lb_sales_order_found
TYPE c.

"#EC NEEDED

REFRESH lt_orddetl.
CLEAR lb_purchase_order_found.
CLEAR lb_sales_order_found.
* get the freight movement order details
SELECT * FROM zmanu_fm_orddetl
INTO TABLE lt_orddetl
WHERE bill = p_bill.
* check for STO
READ TABLE lt_orddetl WITH KEY ordtype = gc_purchase_order_type
TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
lb_purchase_order_found = gc_charx.
ENDIF.
* check for sales order
READ TABLE lt_orddetl WITH KEY ordtype = gc_sales_order_type
TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
lb_sales_order_found = gc_charx.
ENDIF.
* is the order detail consistent?
*<!--wo3788/E1DK911124-----------------* IF NOT lb_purchase_order_found IS INITIAL
* AND NOT lb_sales_order_found
IS INITIAL.
**
The freight movement detail for & contains both STO's and sales orders.
*
MESSAGE e093 WITH p_bill.
* ENDIF.
*--wo3788/E1DK911124------------------!>
* return the order type, STO or sales order
IF NOT lb_purchase_order_found IS INITIAL.
p_ordtype = gc_purchase_order_type.
ELSE.
p_ordtype = gc_sales_order_type.
ENDIF.
ENDFORM.
" check_for_order_consistency
*eject
*&---------------------------------------------------------------------*
*&
Form get_delivery_desc
*&---------------------------------------------------------------------*
FORM get_delivery_desc USING
p_delivery_type
TYPE any
p_processing_status
TYPE any
CHANGING p_delivery_desc
TYPE any
p_processing_status_desc TYPE any.
CLEAR p_delivery_desc.
* get the description of the delivery document
SELECT SINGLE vtext FROM tvlkt INTO p_delivery_desc
WHERE spras = sy-langu
AND lfart = p_delivery_type.

PERFORM get_domain_value_description USING

gc_statv
p_processing_status
CHANGING p_processing_status_desc.

ENDFORM.
" get_delivery_desc
*eject
*&---------------------------------------------------------------------*
*&
Form get_sales_order_desc
*&---------------------------------------------------------------------*
FORM get_sales_order_desc USING
p_order_type
TYPE any
p_processing_status
TYPE any
CHANGING p_order_desc
TYPE any
p_processing_status_desc TYPE any.
CLEAR p_order_desc.
* get the description of the sales order document
SELECT SINGLE bezei FROM tvakt INTO p_order_desc
WHERE spras = sy-langu
AND auart = p_order_type.
* get the status description
PERFORM get_domain_value_description USING

gc_statv
p_processing_status
CHANGING p_processing_status_desc.

ENDFORM.
" get_sales_order_desc
*eject
*&---------------------------------------------------------------------*
*&
Form get_purchase_order_desc
*&---------------------------------------------------------------------*
FORM get_purchase_order_desc USING
p_purchase_order_type TYPE any
CHANGING p_order_desc
TYPE any.
CLEAR p_order_desc.
* get the document type description
SELECT SINGLE batxt FROM t161t INTO p_order_desc
WHERE spras = sy-langu
AND bsart = p_purchase_order_type.

"#EC *

ENDFORM.
" get_purchase_order_desc
*eject
*&---------------------------------------------------------------------*
*&
Form display_documents
*&---------------------------------------------------------------------*
FORM display_documents CHANGING p_continue TYPE any.
DATA: lv_status TYPE ty_status-undispatch_status.
CLEAR p_continue.
REFRESH gt_undispatch_confirmation.
IF zmanu_fm_header IS INITIAL "freight movement header
AND gwa_vttk
IS INITIAL "shipment document
AND gt_vbfa[]
IS INITIAL. "deliveries
*
No documents found for pickup number &.
MESSAGE s127 WITH p_bill INTO lv_status.

CONCATENATE gc_yellow_exclamation_large lv_status


INTO gv_confirmation_status.
ELSE.
*

Documents found for pickup number &.


MESSAGE s128 WITH p_bill INTO lv_status.
CONCATENATE gc_blue_info_circle lv_status
INTO gv_confirmation_status.
ENDIF.
PERFORM setup_display_documents TABLES gt_undispatch_confirmation.
PERFORM display_undispatch_confirm.

ENDFORM.
" display_documents
*eject
*&---------------------------------------------------------------------*
*&
Form setup_display_documents
*&---------------------------------------------------------------------*
FORM setup_display_documents TABLES pt_undispatch_confirmation
TYPE ty_confirmation_table.
PERFORM setup_freight_movement_doc TABLES pt_undispatch_confirmation.
PERFORM setup_cost_adjustment_doc TABLES pt_undispatch_confirmation.
PERFORM setup_shipment_doc

TABLES pt_undispatch_confirmation.

PERFORM setup_shipment_cost_doc

TABLES pt_undispatch_confirmation.

PERFORM setup_order_documents

TABLES pt_undispatch_confirmation.

PERFORM setup_delivery_documents

TABLES pt_undispatch_confirmation.

ENDFORM.
" setup_display_documents
*eject
*&---------------------------------------------------------------------*
*&
Form setup_shipment_doc
*&---------------------------------------------------------------------*
FORM setup_shipment_doc TABLES pt_undispatch_confirmation "#EC *
TYPE ty_confirmation_table.
* local variables
DATA: lwa_undispatch_confirmation TYPE ty_confirmation.
DATA: lv_vendor
lv_shipment_document
lv_shipment_desc
lv_shipment_status
lv_shipment_info

TYPE
TYPE
TYPE
TYPE
TYPE

vttk-tdlnr,
ty_confirmation-document_number,
ty_confirmation-document_desc,
ty_confirmation-document_status,
ty_confirmation-additional_info.

IF NOT gwa_vttk IS INITIAL.


PERFORM get_shipment_desc USING

gwa_vttk-shtyp
gwa_vttk-sttrg
CHANGING lv_shipment_desc
lv_shipment_status.

PERFORM get_shipment_additional_info USING

gwa_vttk-tdlnr

zmanu_fm_header-source_vstel
CHANGING lv_shipment_info.
WRITE gwa_vttk-tknum TO lv_shipment_document. "strip leading zeroes
WRITE gwa_vttk-tdlnr TO lv_vendor.
"strip leading zeroes
CLEAR lwa_undispatch_confirmation.
lwa_undispatch_confirmation-shipment
lwa_undispatch_confirmation-vendor
lwa_undispatch_confirmation-document_number
lwa_undispatch_confirmation-document_desc
lwa_undispatch_confirmation-document_status
lwa_undispatch_confirmation-additional_document
lwa_undispatch_confirmation-additional_info

=
=
=
=
=
=
=

gwa_vttk-tknum.
gwa_vttk-tdlnr.
lv_shipment_document.
lv_shipment_desc.
lv_shipment_status.
lv_vendor.
lv_shipment_info.

APPEND lwa_undispatch_confirmation TO pt_undispatch_confirmation.


ENDIF.
IF lwa_undispatch_confirmation IS INITIAL.
no shipment document found
lwa_undispatch_confirmation-document_desc = 'No shipment document found.'(02
6).
APPEND lwa_undispatch_confirmation TO pt_undispatch_confirmation.
ENDIF.
*

ENDFORM.
" setup_shipment_doc
*eject
*&---------------------------------------------------------------------*
*&
Form setup_shipment_cost_doc
*&---------------------------------------------------------------------*
FORM setup_shipment_cost_doc TABLES pt_undispatch_confirmation "#EC *
TYPE ty_confirmation_table.
* local variables
DATA: lwa_undispatch_confirmation TYPE ty_confirmation.
DATA: lv_shipment_cost_document
lv_shipment_desc
lv_shipment_status
lv_shipment_info

TYPE
TYPE
TYPE
TYPE

ty_confirmation-document_number,
ty_confirmation-document_desc,
ty_confirmation-document_status,
ty_confirmation-additional_info.

IF NOT gwa_vfkk IS INITIAL.


PERFORM get_shipment_cost_desc USING
gwa_vfkk-fkart
CHANGING lv_shipment_desc.
*
*
*

perform get_shipment_additional_info using

gwa_vttk-tdlnr
zmanu_fm_header-source_vstel
changing lv_shipment_info.

WRITE gwa_vfkk-fknum TO lv_shipment_cost_document. "strip leading zeroes


"write gwa_vttk-tdlnr to lv_vendor.
"strip leading zeroes
CLEAR lwa_undispatch_confirmation.
lwa_undispatch_confirmation-shipment_cost
= gwa_vfkk-fknum.
"lwa_undispatch_confirmation-vendor
= gwa_vttk-tdlnr.
lwa_undispatch_confirmation-document_number
= lv_shipment_cost_document.
lwa_undispatch_confirmation-document_desc
= lv_shipment_desc.
lwa_undispatch_confirmation-document_status
= lv_shipment_status.
"lwa_undispatch_confirmation-additional_document = lv_vendor.

lwa_undispatch_confirmation-additional_info

= lv_shipment_info.

APPEND lwa_undispatch_confirmation TO pt_undispatch_confirmation.


ENDIF.
IF lwa_undispatch_confirmation IS INITIAL.
no shipment cost document found
lwa_undispatch_confirmation-document_desc = 'No shipment cost document found
.'(029).
APPEND lwa_undispatch_confirmation TO pt_undispatch_confirmation.
ENDIF.
*

ENDFORM.
" setup_shipment_cost_doc
*eject
*&---------------------------------------------------------------------*
*&
Form get_shipment_desc
*&---------------------------------------------------------------------*
FORM get_shipment_desc USING
p_shipment_type TYPE any
p_shipment_status TYPE any
CHANGING p_document_desc TYPE any
p_document_status TYPE any.
* local variables
DATA: lv_shipment_desc TYPE tvtkt-bezei.
CLEAR p_document_desc.
SELECT SINGLE bezei FROM tvtkt INTO lv_shipment_desc
WHERE spras = sy-langu
AND shtyp = p_shipment_type.
* <shipment type desc>
p_document_desc = lv_shipment_desc.
PERFORM get_domain_value_description USING

gc_sttrg
p_shipment_status
CHANGING p_document_status.

ENDFORM.
" get_shipment_desc
*eject
*&---------------------------------------------------------------------*
*&
Form get_shipment_cost_desc
*&---------------------------------------------------------------------*
FORM get_shipment_cost_desc USING
p_shipment_doc_type TYPE any
CHANGING p_document_desc
TYPE any.
* local variables
DATA: lv_shipment_cost_desc TYPE tvtkt-bezei.
CLEAR p_document_desc.
SELECT SINGLE bezei FROM tvtft INTO lv_shipment_cost_desc
WHERE spras = sy-langu
AND fkart = p_shipment_doc_type.
p_document_desc = lv_shipment_cost_desc.
ENDFORM.

" get_shipment_cost_desc

*eject
*&---------------------------------------------------------------------*
*&
Form get_shipment_additional_info
*&---------------------------------------------------------------------*
FORM get_shipment_additional_info USING
p_forwarding_agent TYPE any
p_shipping_point TYPE any
CHANGING p_shipment_info
TYPE any.
* local variables
DATA: lv_name1
lv_name2
lv_name3
lv_name4
lv_forwarding_agent_name
lv_shipping_point_name

TYPE
TYPE
TYPE
TYPE
TYPE
TYPE

lfa1-name1,
lfa1-name2,
lfa1-name3,
lfa1-name4,
sy-msgv1,
sy-msgv1.

CLEAR lv_forwarding_agent_name.
SELECT SINGLE name1 name2 name3 name4 FROM lfa1
INTO (lv_name1, lv_name2, lv_name3, lv_name4)
WHERE lifnr = p_forwarding_agent.
IF NOT lv_name1 IS INITIAL.
lv_forwarding_agent_name = lv_name1.
ELSEIF NOT lv_name2 IS INITIAL.
lv_forwarding_agent_name = lv_name2.
ELSEIF NOT lv_name3 IS INITIAL.
lv_forwarding_agent_name = lv_name3.
ELSEIF NOT lv_name4 IS INITIAL.
lv_forwarding_agent_name = lv_name4.
ELSE.
lv_forwarding_agent_name = '(forwarding agent name not specified)'(005).
ENDIF.
SELECT SINGLE vtext FROM tvstt INTO lv_shipping_point_name
WHERE spras = sy-langu
AND vstel = p_shipping_point.
* <agent name> / <shipping point> <shipping point name>
CONCATENATE lv_forwarding_agent_name
'/'
p_shipping_point lv_shipping_point_name
INTO p_shipment_info SEPARATED BY space.
ENDFORM.
" get_shipment_additional_info
*eject
*&---------------------------------------------------------------------*
*&
Form setup_order_documents
*&---------------------------------------------------------------------*
FORM setup_order_documents TABLES pt_undispatch_confirmation "#EC *
TYPE ty_confirmation_table.
* local structures
DATA: lwa_fm_orddetl
TYPE zmanu_fm_orddetl,
lwa_undispatch_confirmation TYPE ty_confirmation.
* local variables
DATA: lv_gbstk
lv_auart

TYPE vbuk-gbstk,
TYPE vbak-auart,

lv_bsart
TYPE ekko-bsart,
lv_sales_order
TYPE vbak-vbeln,
lv_purchase_order
TYPE ekko-ebeln,
lv_ord_id
TYPE vbak-vbeln,
lv_document_number
TYPE ty_confirmation-document_number,
lv_document_desc
TYPE ty_confirmation-document_desc,
lv_processing_status_desc TYPE ty_confirmation-document_status,
lv_additional_document
TYPE ty_confirmation-additional_document,
lv_unsez
TYPE ty_confirmation-unsez."Amyk 26083
*>>Amyk 21922 Add variable for stop cuity & state
DATA: lv_city TYPE ort01_gp,
lv_state TYPE regio,
lv_bstnk TYPE bstnk,
lv_kunnr TYPE kunnr,
lv_name1 TYPE ad_name1,
lv_ihrez TYPE ihrez,
lv_subrc TYPE sy-subrc,
*-----Begin Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004
lv_ord
TYPE vbeln,
lv_verkf TYPE everk.
*-----End Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004
DATA: lo_manu
*<<Amyk 21922
CLEAR
CLEAR
CLEAR
CLEAR
CLEAR
CLEAR

TYPE REF TO zcl_manuscm.

lv_auart.
lv_document_desc.
lv_sales_order.
lv_purchase_order.
lwa_undispatch_confirmation.
lv_subrc.

*>>Amyk 21922 Connect to Manu


PERFORM connect_manu CHANGING lo_manu
lv_subrc.
*<<Amyk 21922
* loop through the freight movement orders
LOOP AT gt_fm_orddetl INTO lwa_fm_orddetl.
*

get the order type to retrieve the description


IF lwa_fm_orddetl-ordtype = gc_sales_order_type.
*
get the sales order type from the order header
PERFORM internal_order_number USING
lwa_fm_orddetl-ord_id
CHANGING lv_ord_id.
*>>Amyk 21922 Get PO and customer
*-----Begin Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004
*
SELECT SINGLE auart FROM vbak INTO lv_auart
*
SELECT SINGLE auart bstnk kunnr FROM vbak
*
INTO (lv_auart, lv_bstnk, lv_kunnr)
*
WHERE vbeln = lv_ord_id.
SELECT SINGLE auart bstnk kunnr zzlocation
FROM vbak
INTO (lv_auart, lv_bstnk, lv_kunnr, lv_verkf)
WHERE vbeln = lv_ord_id.
*-----End Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004
*<<Amyk 21922

IF sy-subrc = 0.
get the sales order status
SELECT SINGLE gbstk FROM vbuk INTO lv_gbstk
WHERE vbeln = lv_ord_id.
PERFORM get_sales_order_desc USING

lv_auart
lv_gbstk
CHANGING lv_document_desc
lv_processing_status_desc.

*>>Amyk 21922 Get Customer name ORDER


SELECT SINGLE name1 FROM kna1
INTO lv_name1
WHERE kunnr = lv_kunnr.
*<<Amyk 21922
*

ELSE.
SD document & is not in the database or has been archived
MESSAGE i302(v1) WITH lwa_fm_orddetl-ord_id
INTO lv_document_desc.
ENDIF.

lv_sales_order
= lwa_fm_orddetl-ord_id.
lv_document_number = lwa_fm_orddetl-ord_id.
*-----Begin Of Changes For WO:31632 By Rajj On 03/03/2014 Transport#E1DK918817
lv_ord
= lv_sales_order.
*-----End Of Changes For WO:31632 By Rajj On 03/03/2014 Transport#E1DK918817
ELSE.
*

get the purchase order type from the p.o. header

*
SELECT SINGLE bsart FROM ekko INTO lv_bsart
*>>Amyk 26083
*
SELECT SINGLE bsart ihrez FROM ekko
*
INTO (lv_bsart, lv_ihrez)

"Amyk 21922
"Amyk 21922

*-----Begin Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004


*
SELECT SINGLE bsart ihrez unsez
*
FROM ekko
*
INTO (lv_bsart, lv_ihrez, lv_unsez)
**<<Amyk 26083
*
WHERE ebeln = lwa_fm_orddetl-ord_id
*
AND bstyp = gc_ekko_purchase_order_type.
SELECT SINGLE bsart ihrez unsez verkf
FROM ekko
INTO (lv_bsart, lv_ihrez, lv_unsez, lv_verkf)
WHERE ebeln = lwa_fm_orddetl-ord_id AND
bstyp = gc_ekko_purchase_order_type.
*-----End Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004
IF sy-subrc = 0.
PERFORM get_purchase_order_desc USING
lv_bsart
CHANGING lv_document_desc.
*>>Amyk 21922 Get Customer name PO
PERFORM get_purchase_order_cusname USING lwa_fm_orddetl-ord_id
CHANGING lv_name1.
*<<Amyk 21922
ENDIF.

lv_purchase_order = lwa_fm_orddetl-ord_id.
lv_document_number = lwa_fm_orddetl-ord_id.
*-----Begin Of Changes For WO:31632 By Rajj On 03/03/2014 Transport#E1DK918817
lv_ord
= lv_purchase_order.
*-----End Of Changes For WO:31632 By Rajj On 03/03/2014 Transport#E1DK918817
ENDIF.
*>>Amyk 21922 Get Stop info from Manu
IF lv_subrc = 0.
PERFORM get_manu_stop_info USING lwa_fm_orddetl-ord_id
CHANGING lv_city
lv_state.
ENDIF.
*<<Amyk 21922
CLEAR lwa_undispatch_confirmation.
"lwa_undispatch_confirmation-delivery
= lwa_vbfa-vbelv.
lwa_undispatch_confirmation-sales_order
= lv_sales_order.
lwa_undispatch_confirmation-purchase_order
= lv_purchase_order.
lwa_undispatch_confirmation-document_number
= lv_document_number.
lwa_undispatch_confirmation-document_desc
= lv_document_desc.
lwa_undispatch_confirmation-document_status
= lv_processing_status_desc.
lwa_undispatch_confirmation-additional_document = lv_additional_document.
"lwa_undispatch_confirmation-additional_info
= lv_delivery_info.
*>>Amyk 21922 Add fields to screen
lwa_undispatch_confirmation-stop_num
= lwa_fm_orddetl-stop_num.
IF lv_bstnk IS NOT INITIAL.
lwa_undispatch_confirmation-ponum
= lv_bstnk.
ELSEIF lv_ihrez IS NOT INITIAL.
lwa_undispatch_confirmation-ponum
= lv_ihrez.
ENDIF.
lwa_undispatch_confirmation-cusname
lwa_undispatch_confirmation-city
lwa_undispatch_confirmation-state
lwa_undispatch_confirmation-miles
lwa_undispatch_confirmation-unsez
*<<Amyk 21922

=
=
=
=
=

lv_name1.
lv_city.
lv_state.
lwa_fm_orddetl-miles.
lv_unsez."Amyk 26083

*-----Begin Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004


*-----Begin Of Changes For WO:31632 By Rajj On 03/03/2014 Transport#E1DK918817
*-----FM To Convert The Document No. To Internal Format
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_ord
IMPORTING
output = lv_ord.
*-----Method To Get The Location Id For The Document
CALL METHOD zcl_truck_validation=>read_location
EXPORTING
i_vbeln = lv_ord
IMPORTING
e_doc_loc = lv_verkf.
lwa_undispatch_confirmation-loc = lv_verkf.
*----End Of Changes For WO:31632 By Rajj On 03/03/2014 Transport#E1DK918817
*-----End Of Changes For WO:29355 By Rajj On 07/11/2013 Transport#E1DK918004
APPEND lwa_undispatch_confirmation TO pt_undispatch_confirmation.
*>>Amyk 21922 Clear variables

CLEAR: lv_auart, lv_bstnk, lv_kunnr,


lv_bstnk, lv_ihrez, lv_name1,
lv_city, lv_state,
lv_unsez.
*<<Amyk 21922
ENDLOOP.

"Amyk 26083

*>>Amyk 21922 Disconnect to Manu


PERFORM disconnect_manu USING lo_manu.
*<<Amyk 21922
*

IF lwa_undispatch_confirmation IS INITIAL.
no orders found
lwa_undispatch_confirmation-document_desc = 'No orders found.'(030).
APPEND lwa_undispatch_confirmation TO pt_undispatch_confirmation.
ENDIF.

ENDFORM.
" setup_order_documents
*eject
*&---------------------------------------------------------------------*
*&
Form setup_delivery_documents
*&---------------------------------------------------------------------*
FORM setup_delivery_documents TABLES pt_undispatch_confirmation "#EC *
TYPE ty_confirmation_table.
* local variables
DATA: lwa_vbfa
TYPE vbfa,
lwa_undispatch_confirmation TYPE ty_confirmation.
DATA: lv_gbstk
lv_lfart
lv_vbelv
lv_sales_order
lv_purchase_order
lv_delivery_desc
lv_processing_status_desc
lv_document_desc
lv_additional_document
lv_delivery_info

TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE

vbuk-gbstk,
likp-lfart,
vbfa-vbelv,
vbak-vbeln,
ekko-ebeln,
ty_confirmation-document_desc,
ty_confirmation-document_status,
ty_confirmation-document_desc,
ty_confirmation-additional_document,
ty_confirmation-additional_info.

CLEAR lv_lfart.
CLEAR lv_delivery_desc.
CLEAR lwa_undispatch_confirmation.
* loop through the relevant deliveries
LOOP AT gt_vbfa INTO lwa_vbfa.
SELECT SINGLE gbstk FROM vbuk INTO lv_gbstk
WHERE vbeln = lwa_vbfa-vbelv.
IF sy-subrc = 0.
*
get the delivery type to retrieve the description
SELECT SINGLE lfart FROM likp INTO lv_lfart
WHERE vbeln = lwa_vbfa-vbelv.
IF sy-subrc = 0.
PERFORM get_delivery_desc USING
lv_lfart
lv_gbstk
CHANGING lv_delivery_desc
lv_processing_status_desc.
ENDIF.

PERFORM get_delivery_additional_info USING


lwa_vbfa-vbelv
CHANGING lv_delivery_info
lv_sales_order
lv_purchase_order.
IF NOT lv_sales_order IS INITIAL.
WRITE lv_sales_order TO lv_additional_document.

"strip leading zeroe

s
ELSEIF NOT lv_purchase_order IS INITIAL.
WRITE lv_purchase_order TO lv_additional_document. "strip leading zeroe
s
ENDIF.
*

<delivery doc type desc>


WRITE lwa_vbfa-vbelv TO lv_vbelv.
lv_document_desc = lv_delivery_desc.
CLEAR lwa_undispatch_confirmation.
lwa_undispatch_confirmation-delivery
lwa_undispatch_confirmation-sales_order
lwa_undispatch_confirmation-purchase_order
lwa_undispatch_confirmation-document_number
lwa_undispatch_confirmation-document_desc
lwa_undispatch_confirmation-document_status

=
=
=
=
=
=

lwa_vbfa-vbelv.
lv_sales_order.
lv_purchase_order.
lv_vbelv.
lv_document_desc.
lv_processing_status_des

c.
lwa_undispatch_confirmation-additional_document = lv_additional_document.
lwa_undispatch_confirmation-additional_info
= lv_delivery_info.
APPEND lwa_undispatch_confirmation TO pt_undispatch_confirmation.
ENDIF.
ENDLOOP.
*

IF lwa_undispatch_confirmation IS INITIAL.
no deliveries found
lwa_undispatch_confirmation-document_desc = 'No deliveries found.'(006).
APPEND lwa_undispatch_confirmation TO pt_undispatch_confirmation.
ENDIF.

ENDFORM.
" setup_delivery_documents
*eject
*&---------------------------------------------------------------------*
*&
Form get_delivery_additional_info
*&---------------------------------------------------------------------*
FORM get_delivery_additional_info USING
p_delivery
TYPE any
CHANGING p_delivery_info TYPE any
p_sales_order
TYPE any
p_purchase_order TYPE any.
* local variables
DATA: lv_auart
lv_bsart
lv_document_number
lv_document_desc

TYPE
TYPE
TYPE
TYPE

*>>> WO3260
DATA: lv_comwa
lt_vbfa_tab
lwa_vbfa
*<<< WO3260

TYPE vbco6,
TYPE TABLE OF vbfa,
TYPE vbfa.

vbak-auart,
ekko-bsart,
vbak-vbeln,
tvakt-bezei.

CLEAR p_delivery_info.
CLEAR p_sales_order.
CLEAR p_purchase_order.
CLEAR lv_document_number.
CLEAR lv_document_desc.
* is this a sales order delivery? check the document flow
SELECT SINGLE vbelv FROM vbfa INTO lv_document_number
"#EC *
WHERE vbeln = p_delivery
AND vbtyp_v = gc_sales_order_type
AND vbtyp_n = gc_delivery_document.
IF sy-subrc = 0.
p_sales_order = lv_document_number.
*

get the order type from the order header


SELECT SINGLE auart FROM vbak INTO lv_auart
WHERE vbeln = lv_document_number
AND vbtyp = gc_sales_order_type.
IF sy-subrc = 0.
*
get the document type description
SELECT SINGLE bezei FROM tvakt INTO lv_document_desc
WHERE spras = sy-langu
AND auart = lv_auart.
ENDIF.
ENDIF.
*>>> WO3260 - use FM to check if it is a purchase order (STO) delivery
IF lv_document_number IS INITIAL.
lv_comwa-vbeln = p_delivery.

*
*
*
*
*
*
*

*
*

CALL FUNCTION 'RV_ORDER_FLOW_INFORMATION'


EXPORTING
AUFBEREITUNG
= '2'
BELEGTYP
= ' '
comwa
= lv_comwa
nachfolger
= ' '
N_STUFEN
= '50'
VORGAENGER
= 'X'
V_STUFEN
= '50'
IMPORTING
BELEGTYP_BACK
=
TABLES
vbfa_tab
= lt_vbfa_tab
EXCEPTIONS
"21922
no_vbfa
= 1
no_vbuk_found
= 2
OTHERS
= 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
READ TABLE lt_vbfa_tab INTO lwa_vbfa
WITH KEY vbtyp_n = 'V'.
IF sy-subrc = 0.
lv_document_number = lwa_vbfa-vbeln.
p_purchase_order = lv_document_number.
get the purchase order type from the p.o. header

SELECT SINGLE bsart FROM ekko INTO lv_bsart


WHERE ebeln = lv_document_number
AND bstyp = gc_ekko_purchase_order_type.
IF sy-subrc = 0.
*
get the document type description
SELECT SINGLE batxt FROM t161t INTO lv_document_desc "#EC *
WHERE spras = sy-langu
AND bsart = lv_bsart.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
*<<< WO3260
">>> WO3260 - changed to get data via standard SAP FM
"* is this a purchase order (STO) delivery? check the P.O. history
" IF lv_document_number IS INITIAL.
"
SELECT SINGLE ebeln FROM ekbe INTO lv_document_number "#EC *
"
WHERE belnr = p_delivery
"
AND bewtp = gc_delivery_note
"
AND vgabe = gc_delivery_sto.
"
IF sy-subrc = 0.
"
p_purchase_order = lv_document_number.
"*
get the purchase order type from the p.o. header
"
SELECT SINGLE bsart FROM ekko INTO lv_bsart
"
WHERE ebeln = lv_document_number
"
AND bstyp = gc_ekko_purchase_order_type.
"
IF sy-subrc = 0.
"*
get the document type description
"
SELECT SINGLE batxt FROM t161t INTO lv_document_desc"#EC *
"
WHERE spras = sy-langu
"
AND bsart = lv_bsart.
"
ENDIF.
"
ENDIF.
" ENDIF.
"<<< WO3260
* <document desc>
p_delivery_info = lv_document_desc.
ENDFORM.
" get_delivery_additional_info
*eject
*&---------------------------------------------------------------------*
*&
Form setup_freight_movement_doc
*&---------------------------------------------------------------------*
FORM setup_freight_movement_doc TABLES pt_undispatch_confirmation "#EC *
TYPE ty_confirmation_table.
* local variables
DATA: lwa_undispatch_confirmation TYPE ty_confirmation.
DATA: lv_document_desc
lv_document_status
lv_additional_info

TYPE ty_confirmation-document_desc,
TYPE ty_confirmation-document_status,
TYPE ty_confirmation-additional_info.

IF NOT zmanu_fm_header IS INITIAL.


CLEAR lwa_undispatch_confirmation.
lv_document_desc = 'Freight Movement'(007).

PERFORM get_domain_value_description USING

gc_zmanuloadstat
zmanu_fm_header-load_status
CHANGING lv_document_status.

<source location> / <destination location>


CONCATENATE zmanu_fm_header-source_vstel zmanu_fm_header-source_id
'/'
zmanu_fm_header-dest_vstel zmanu_fm_header-dest_id
INTO lv_additional_info SEPARATED BY space.

add the web status if it is set


IF NOT zmanu_fm_header-web_status IS INITIAL.
CONCATENATE lv_additional_info '/' zmanu_fm_header-web_status
INTO lv_additional_info SEPARATED BY space.
ENDIF.
lwa_undispatch_confirmation-bill
lwa_undispatch_confirmation-document_number
lwa_undispatch_confirmation-document_desc
lwa_undispatch_confirmation-document_status
lwa_undispatch_confirmation-additional_info

=
=
=
=
=

p_bill.
p_bill.
lv_document_desc.
lv_document_status.
lv_additional_info.

APPEND lwa_undispatch_confirmation TO pt_undispatch_confirmation.


ENDIF.
IF lwa_undispatch_confirmation IS INITIAL.
no freight movement found
lwa_undispatch_confirmation-document_desc = 'No freight movement found.'(028

*
).

APPEND lwa_undispatch_confirmation TO pt_undispatch_confirmation.


ENDIF.
ENDFORM.
" setup_freight_movement_doc
*eject
*&---------------------------------------------------------------------*
*&
Form setup_cost_adjustment_doc
*&---------------------------------------------------------------------*
FORM setup_cost_adjustment_doc TABLES pt_undispatch_confirmation "#EC *
TYPE ty_confirmation_table.
* local variables
DATA: lwa_undispatch_confirmation TYPE ty_confirmation.
DATA: lv_document_desc TYPE ty_confirmation-document_desc,
lv_document_status TYPE ty_confirmation-document_status.
IF NOT zmanu_frtcst_adj IS INITIAL.
CLEAR lwa_undispatch_confirmation.
lv_document_desc = 'Freight Cost Adjustment'(032).
PERFORM count_adjustment_records USING
p_bill
CHANGING lv_document_status.
lwa_undispatch_confirmation-bill
lwa_undispatch_confirmation-freight_cost_adjustment
lwa_undispatch_confirmation-document_number
lwa_undispatch_confirmation-document_desc
lwa_undispatch_confirmation-document_status

=
=
=
=
=

p_bill.
p_bill.
p_bill.
lv_document_desc.
lv_document_status.

"lwa_undispatch_confirmation-additional_info
"lwa_undispatch_confirmation-action_to_be_taken

= lv_additional_info.
= lv_action_to_be_taken

.
APPEND lwa_undispatch_confirmation TO pt_undispatch_confirmation.
ENDIF.
IF lwa_undispatch_confirmation IS INITIAL.
no freight cost adjustments found
lwa_undispatch_confirmation-document_desc = 'No freight cost adjustments fou
nd.'(031).
APPEND lwa_undispatch_confirmation TO pt_undispatch_confirmation.
ENDIF.
*

ENDFORM.
" setup_cost_adjustment_doc
*eject
*&---------------------------------------------------------------------*
*&
Form display_undispatch_confirm
*&---------------------------------------------------------------------*
FORM display_undispatch_confirm.
* display the confirmation screen
* CALL SCREEN 0400 STARTING AT 6 5 ENDING AT 127 20. "Amyk 21922
CALL SCREEN 0400.
"Amyk 21922
ENDFORM.
" display_undispatch_confirm
*eject
*&---------------------------------------------------------------------*
*&
Form print_undispatch_confirmation
*&---------------------------------------------------------------------*
FORM print_undispatch_confirmation.
* local booleans
DATA: lb_spool_file_opened(1) TYPE c.
PERFORM open_spool_file CHANGING lb_spool_file_opened.
IF NOT lb_spool_file_opened IS INITIAL.
PERFORM write_undispatch_confirmation.
PERFORM close_spool_file.
ENDIF.
ENDFORM.
" print_undispatch_confirmation
*eject
*&---------------------------------------------------------------------*
*&
Form open_spool_file
*&---------------------------------------------------------------------*
FORM open_spool_file CHANGING pb_spool_file_opened TYPE any.
* local constants
CONSTANTS: lc_define_print_params TYPE sy-callr
VALUE 'PARAM',
lc_132_characters
TYPE pri_params-linsz VALUE 132.
* local variables
DATA: lwa_out_parameters TYPE pri_params.

* local booleans
DATA: lb_valid(1) TYPE c.
CLEAR pb_spool_file_opened.
CLEAR lb_valid.

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

CALL FUNCTION 'GET_PRINT_PARAMETERS'


EXPORTING
ARCHIVE_ID
= C_CHAR_UNKNOWN
ARCHIVE_INFO
= C_CHAR_UNKNOWN
ARCHIVE_MODE
= C_CHAR_UNKNOWN
ARCHIVE_TEXT
= C_CHAR_UNKNOWN
AR_OBJECT
= C_CHAR_UNKNOWN
ARCHIVE_REPORT
= C_CHAR_UNKNOWN
AUTHORITY
= C_CHAR_UNKNOWN
COPIES
= C_NUM3_UNKNOWN
COVER_PAGE
= C_CHAR_UNKNOWN
DATA_SET
= C_CHAR_UNKNOWN
DEPARTMENT
= C_CHAR_UNKNOWN
DESTINATION
= C_CHAR_UNKNOWN
EXPIRATION
= C_NUM1_UNKNOWN
IMMEDIATELY
= C_CHAR_UNKNOWN
IN_ARCHIVE_PARAMETERS
= ' '
IN_PARAMETERS
= ' '
LAYOUT
= C_CHAR_UNKNOWN
LINE_COUNT
= C_INT_UNKNOWN
line_size
= lc_132_characters
LIST_NAME
= C_CHAR_UNKNOWN
LIST_TEXT
= C_CHAR_UNKNOWN
mode
= lc_define_print_params
NEW_LIST_ID
= C_CHAR_UNKNOWN
PROTECT_LIST
= C_CHAR_UNKNOWN
no_dialog
= ' '
RECEIVER
= C_CHAR_UNKNOWN
RELEASE
= C_CHAR_UNKNOWN
REPORT
= C_CHAR_UNKNOWN
SAP_COVER_PAGE
= C_CHAR_UNKNOWN
HOST_COVER_PAGE
= C_CHAR_UNKNOWN
PRIORITY
= C_NUM1_UNKNOWN
SAP_OBJECT
= C_CHAR_UNKNOWN
TYPE
= C_CHAR_UNKNOWN
USER
= SY-UNAME
USE_OLD_LAYOUT
= ' '
UC_DISPLAY_MODE
= C_CHAR_UNKNOWN
DRAFT
= C_CHAR_UNKNOWN
ABAP_LIST
= ' '
USE_ARCHIVENAME_DEF
= ' '
DEFAULT_SPOOL_SIZE
= C_CHAR_UNKNOWN
WITH_STRUCTURE
= C_CHAR_UNKNOWN
SUPPRESS_SHADING
= C_CHAR_UNKNOWN
PO_FAX_STORE
= ' '
NO_FRAMES
= C_CHAR_UNKNOWN
IMPORTING
OUT_ARCHIVE_PARAMETERS =
out_parameters
= lwa_out_parameters
valid
= lb_valid
VALID_FOR_SPOOL_CREATION =
EXCEPTIONS

archive_info_not_found
invalid_print_params
invalid_archive_params
OTHERS

=
=
=
=

1
2
3
4.

IF sy-subrc = 0
AND NOT lb_valid IS INITIAL. "print parameters are valid
NEW-PAGE PRINT ON
PARAMETERS lwa_out_parameters
NO-HEADING
NO-TITLE
NO DIALOG.
pb_spool_file_opened = gc_charx.
ENDIF.
ENDFORM.
" open_spool_file
*eject
*&---------------------------------------------------------------------*
*&
Form write_undispatch_confirmation
*&---------------------------------------------------------------------*
FORM write_undispatch_confirmation.
* local variables
DATA: lwa_undispatch_confirmation TYPE ty_confirmation.
LOOP AT gt_undispatch_confirmation INTO lwa_undispatch_confirmation.
WRITE:/ lwa_undispatch_confirmation-document_number
UNDER 'Document'(022)
,
lwa_undispatch_confirmation-document_desc

UNDER 'Description'(0

lwa_undispatch_confirmation-document_status

UNDER 'Status'(024).

23),
ENDLOOP.
SKIP 1.
ENDFORM.
" write_undispatch_confirmation
*eject
*&---------------------------------------------------------------------*
*&
Form close_spool_file
*&---------------------------------------------------------------------*
FORM close_spool_file .
NEW-PAGE PRINT OFF.
ENDFORM.
" close_spool_file
*eject
*&---------------------------------------------------------------------*
*&
Form order_display_transaction
*&---------------------------------------------------------------------*
FORM order_display_transaction USING
p_ord_id TYPE any.
* local variables
DATA: lwa_freight_order TYPE ty_freight_order.
READ TABLE gt_freight_orders INTO lwa_freight_order
WITH KEY ord_id = p_ord_id.
CASE lwa_freight_order-ordtype.

WHEN space.
The order type is not specified. Display is not possible.
MESSAGE e074.

WHEN gc_sales_order_type.
Invoke transaction VA03 to display the order
SET PARAMETER ID 'AUN' FIELD p_ord_id.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.

WHEN gc_purchase_order_type.
Invoke transaction ME23N to display the purchase order
SET PARAMETER ID 'BES' FIELD p_ord_id.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

WHEN OTHERS.
Unexpected document type &1 - &2. Display is not possible.
MESSAGE e075 WITH lwa_freight_order-ordtype
lwa_freight_order-ordtype_desc.
ENDCASE.

ENDFORM.
" order_display_transaction
*eject
*&---------------------------------------------------------------------*
*&
Form get_shipment_cost_pickup_num
*&---------------------------------------------------------------------*
FORM get_shipment_cost_pickup_num USING
p_fknum
TYPE any
CHANGING p_pickup_number TYPE any.
CLEAR p_pickup_number.
* get the pickup number from one of the items (it doesn't matter which)
SELECT SINGLE exti1 FROM vfkp INTO p_pickup_number
"#EC *
WHERE fknum = p_fknum.
ENDFORM.
" get_shipment_cost_pickup_num
*eject
*&---------------------------------------------------------------------*
*&
Form check_program_name
*&---------------------------------------------------------------------*
FORM check_program_name USING
p_program
TYPE any
CHANGING p_invalid_program TYPE any.
* local constants
CONSTANTS: lc_executable_program TYPE subc VALUE 1.
* local variables
DATA: lv_subc TYPE subc.
* does the program exist? is it executable?
SELECT SINGLE subc FROM trdir INTO lv_subc
WHERE name = p_program.
IF sy-subrc <> 0.
p_invalid_program = 'X'.
MESSAGE e030 WITH 'Freight Cost Adjustment program'(e01)
p_program
'does not exist.'(e02).
ELSEIF lv_subc <> lc_executable_program.

p_invalid_program = 'X'.
MESSAGE e030 WITH 'Program'(e03)
p_program
'is not an EXECUTABLE program.'(e04).
ENDIF.
ENDFORM.
" check_program_name
*eject
*&---------------------------------------------------------------------*
*&
Form internal_order_number
*&---------------------------------------------------------------------*
FORM internal_order_number USING
p_ord_id
TYPE any
CHANGING p_internal_ord_id TYPE any.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = p_ord_id
IMPORTING
output = p_internal_ord_id.
ENDFORM.
" internal_order_number
*eject
*&---------------------------------------------------------------------*
*&
Form count_adjustment_records
*&---------------------------------------------------------------------*
FORM count_adjustment_records USING
p_bill
TYPE any
CHANGING p_condition_record_count TYPE any.
DATA: lv_count(7) TYPE c.
CLEAR p_condition_record_count.
SELECT COUNT(*) FROM zmanu_frtcst_adj
WHERE pickup_number = p_bill.
WRITE sy-dbcnt TO lv_count LEFT-JUSTIFIED.
IF lv_count = 1.
CONCATENATE lv_count 'adjustment'(034)
INTO p_condition_record_count SEPARATED BY space.
ELSE.
CONCATENATE lv_count 'adjustments'(033)
INTO p_condition_record_count SEPARATED BY space.
ENDIF.
CONDENSE p_condition_record_count.
ENDFORM.
" count_adjustment_records
*&---------------------------------------------------------------------*
*&
Form GET_MANU_STOP_INFO
*&---------------------------------------------------------------------*
FORM get_manu_stop_info USING
iv_ordid TYPE zmanuordid
CHANGING cv_city TYPE ort01_gp
cv_state TYPE regio.
DATA: lv_destid TYPE zmanulocid.
DATA: lo_sql_excep TYPE REF TO cx_sy_native_sql_error.
TRY.

EXEC SQL.
SELECT dest_id
FROM ord
INTO
:lv_destid
WHERE id = :iv_ordid
ENDEXEC.
CATCH cx_sy_native_sql_error INTO lo_sql_excep.
sy-subrc = 4.
ENDTRY.
IF lv_destid IS NOT INITIAL.
TRY.
EXEC SQL.
SELECT city,
state
FROM location
INTO
:cv_city,
:cv_state
WHERE id = :lv_destid
ENDEXEC.
CATCH cx_sy_native_sql_error INTO lo_sql_excep.
sy-subrc = 4.
ENDTRY.
ENDIF.
ENDFORM.
" GET_MANU_STOP_INFO
*&---------------------------------------------------------------------*
*&
Form GET__PURCHASE_ORDER_CUSNAME
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM get_purchase_order_cusname USING
pv_ordid TYPE zmanuordid
CHANGING pv_name1 TYPE ad_name1.
DATA: lv_adrn2 TYPE adrn2.
SELECT SINGLE adrn2 FROM ekpo
INTO lv_adrn2
WHERE ebeln = pv_ordid.

"#EC *

IF sy-subrc <> 0.
EXIT.
ENDIF.
SELECT SINGLE name1 FROM adrc
INTO pv_name1
WHERE addrnumber = lv_adrn2.

"#EC *

IF sy-subrc <> 0.
CLEAR pv_name1.
ENDIF.
ENDFORM.
" GET__PURCHASE_ORDER_CUSNAME
*&---------------------------------------------------------------------*
*&
Form CONNECT_MANU
*&---------------------------------------------------------------------*

FORM connect_manu CHANGING co_manu TYPE REF TO zcl_manuscm


cv_subrc TYPE sy-subrc.
DATA: lo_excep
TYPE REF TO cx_root.
DATA: lv_connection_exist TYPE wfcs_boolean.
TRY.
IF co_manu IS INITIAL.
CREATE OBJECT co_manu.
ENDIF.
lv_connection_exist = co_manu->is_connected( ).
ENDTRY.
IF lv_connection_exist IS INITIAL.
TRY.
co_manu->connect( ).
CATCH zcx_manuscm_connection zcx_not_found INTO lo_excep.
cv_subrc = 4.
ENDTRY.
ENDIF.
ENDFORM.
" CONNECT_MANU
*&---------------------------------------------------------------------*
*&
Form MANU_DISCONNECT
*&---------------------------------------------------------------------*
FORM disconnect_manu USING io_manu TYPE REF TO zcl_manuscm.
DATA: lv_connection_exist TYPE wfcs_boolean.
TRY.
IF io_manu IS INITIAL.
CREATE OBJECT io_manu.
ENDIF.
lv_connection_exist = io_manu->is_connected( ).
ENDTRY.
IF lv_connection_exist IS NOT INITIAL.
TRY.
io_manu->disconnect( ).
ENDTRY.
ENDIF.
ENDFORM.

" DISCONNECT_MANU

Das könnte Ihnen auch gefallen