How to use 'DELETE ADJACENT DUPLICATES FROM' for deleting as some field
How to use 'DELETE ADJACENT DUPLICATES FROM' for deleting as some field
eg:
I have a inner table ,it contains a field named ast_guid,now,I search ten records,contains some duplicate records in the field of ast_guid.but I can not delete the duplicate records as ast_guid.
If the type of inner table is standard table, you should sort the inner table by the fields before user 'DELETE ADJACENT DUPLICATES ', and use COMPARING addtion.
Edited by: Justin on Jun 28, 2009 9:48 AM
Similar Messages
-
Delete adjacent duplicates from dynamic table
Hi all,
How to do delete adjacent <tab> comparing f1 f2 f3 for a dynamic table.
Thx in advance
Edited by: Misha Denis on Feb 14, 2010 9:28 AM
Moderator message - Cross post locked
Edited by: Rob Burbank on Feb 14, 2010 3:45 PMyou can use a function GET_COMPONENT_LIST to get all the fields' name after the dynamic table generated. then you can use the field name in the statement "DELETE....COMPARE "
CALL FUNCTION 'GET_COMPONENT_LIST'
EXPORTING
program = SY-REPID
fieldname = THE_NAME_OF_THE_DYNAMIC_INTERNAL_TABLE
tables
components = ITAB
LOOP AT ITAB.
*ASSIGN THE ITAB-COMPNAME TO SOME VARIANTS:FIELD1,FIELD2,FIELD3.
ENDLOOP.
SORT THE_NAME_OF_THE_DYNAMIC_INTERNAL_TABLE BY FIELD1 FIELD2 FIELD3.
DELETE ADJACENT DUPLICATES FROM THE_NAME_OF_THE_DYNAMIC_INTERNAL_TABLE COMPARING FIELD1 FIELD2 FIELD3. -
DELETE ADJACENT DUPLICATES FROM itab
Hi Frends, can any one explain me about
<b>DELETE ADJACENT DUPLICATES FROM itab</b>
and can any one give me sample program using the above statement.
full points will be given for good example
Thanks and Regards
Vijayai am sending 2 programs to u:
DESCRIPTION: INTERACTIVE REPORT FOR SALES DOCUMENT
*FOR PRINTING SALES DOCUMENT HEADER, SALES DOCUMENT DETAILS, PARTNER
DETAILS, SCHEDULE LINE DATA.
D A T A D E C L A R A T I O N S *
INCLUDE z8vg_isro1.
INITIALIZATION.
v_chkbox = ' '.
v_chkbox1 = ''.
S T A R T O F S E L E C T I O N *
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-028.
SELECT-OPTIONS: s_vbeln FOR i_vbak-vbeln.
"FOR RANGE OF VALUES.
SELECTION-SCREEN END OF BLOCK bl1.
A T S E L E C T I O N S C R E E N ( V A L I D A T I O N S ) *
AT SELECTION-SCREEN.
Check if record exists or not.
PERFORM zf_validations.
S T A R T O F S E L E C T I O N *
START-OF-SELECTION.
*this is event blocks which is executed when the user chooses the
*corresponding function key
REFRESH i_ucomm.
CLEAR i_ucomm.
i_ucomm-ucomm = 'G002'. " schdl data
APPEND i_ucomm.
SET PF-STATUS 'MENU2' EXCLUDING i_ucomm.
" MENU BAR STATUS.
*populating sales order header data , item data , partner data ,
*schedule data
PERFORM zf_select_headerdata.
AT USER-COMMAND.
"This event is executed whenever the user presses a menu option 'execute
"' in the list
CASE sy-ucomm.
WHEN 'EX01'. "Cancel
LEAVE PROGRAM.
WHEN 'GO01'. "for item data
vflag = '0'.
REFRESH i_ucomm.
CLEAR i_ucomm.
i_ucomm-ucomm = 'GO01'. " item data
APPEND i_ucomm.
SET PF-STATUS 'MENU2' EXCLUDING i_ucomm .
PERFORM zf_select_details.
WHEN 'G002'. "for schedule data .
REFRESH i_ucomm.
CLEAR i_ucomm.
i_ucomm-ucomm = 'G000'.
APPEND i_ucomm.
APPEND 'GO01' TO i_ucomm.
APPEND 'G002' TO i_ucomm.
SET PF-STATUS 'MENU2' EXCLUDING i_ucomm .
PERFORM zf_scheduledata .
WHEN 'G000'.
"function code for displaying partner details.
REFRESH i_ucomm.
CLEAR i_ucomm.
i_ucomm-ucomm = 'G000'.
APPEND i_ucomm.
APPEND 'GO01' TO i_ucomm.
APPEND 'G002' TO i_ucomm.
SET PF-STATUS 'MENU2' EXCLUDING i_ucomm .
IF vflag = '1'.
PERFORM zf_partnerdetails.
" FOR PARTNER DETAILS OF HEADER
ELSE.
PERFORM zf_partnerdetails1.
" FOR PARTNER DETAILS OF SALES ORDER ITEMS .
ENDIF.
WHEN 'BACK'.
LEAVE PROGRAM.
ENDCASE.
*& FORM TOP_OF_PAGE
TOP-OF-PAGE DURING LINE-SELECTION.
printing header for secondary list of report.
PERFORM zf_tols.
TOP-OF-PAGE.
printing hearder for basic list of report
PERFORM zf_top.
*& Form VALIDATIONS
subroutine to check whether record exists or not
--> p1 text
<-- p2 text
FORM zf_validations .
SELECT SINGLE vbeln FROM vbak
INTO i_vbak-vbeln
WHERE vbeln IN s_vbeln.
EXIT.
CHECK IF THE RECORD EXISTS OR NOT.
IF sy-subrc <> 0.
MESSAGE e001.
ENDIF.
ENDFORM. " VALIDATIONS
*& Form SELECT_HEADERDATA
subroutine for populating header data and other details.
--> p1 text
<-- p2 text
FORM zf_select_headerdata .
*refreshing all the internal tables.
CLEAR i_vbak.
REFRESH i_vbak.
CLEAR i_vbap.
REFRESH i_vbap.
CLEAR i_vbpa.
REFRESH i_vbpa.
CLEAR i_vbep.
REFRESH i_vbep.
*populating sales order header data , item data , partner data ,
*schedule data
SELECT vbeln
erdat
vkorg
FROM vbak
INTO TABLE i_vbak
WHERE vbeln IN s_vbeln.
IF NOT i_vbak[] IS INITIAL.
SELECT vbeln
posnr
matnr FROM vbap
INTO TABLE i_vbap
FOR ALL ENTRIES IN i_vbak
WHERE vbeln = i_vbak-vbeln.
ENDIF.
IF sy-subrc <> 0.
MESSAGE e004.
ENDIF.
SORT i_vbap BY vbeln posnr.
" SORTING TABLE WITH KEY FIELDS .
REFRESH i_mat.
CLEAR i_mat.
fetching of unique material numbers corresponding sales orderno.
LOOP AT i_vbap.
i_mat-matnr = i_vbap-matnr.
APPEND i_mat.
ENDLOOP.
SORT i_mat BY matnr. " sorting of material nos.
IF sy-SUBRC = 0.
deleting duplicate entries from table
DELETE ADJACENT DUPLICATES FROM i_mat
COMPARING matnr.
*endif.
REFRESH i_mat1.
CLEAR i_mat1.
populating material no and dscription .
SELECT matnr
maktx FROM makt
INTO TABLE i_mat1
FOR ALL ENTRIES IN i_mat
WHERE matnr = i_mat-matnr.
SELECT vbeln
posnr
parvw
kunnr
FROM vbpa
INTO TABLE i_vbpa
FOR ALL ENTRIES IN i_vbap
WHERE vbeln = i_vbap-vbeln .
SORT i_vbap BY vbeln posnr.
REFRESH i_tvbpa.
REFRESH i_tpartf.
CLEAR i_tpartf.
*FOR FETCHING UNIQUE PARTNER FUNCTIONS
LOOP AT i_vbpa.
i_tpartf-parvw = i_vbpa-parvw.
APPEND i_tpartf.
ENDLOOP.
SORT i_tpartf BY parvw.
DELETE ADJACENT DUPLICATES FROM i_tpartf
COMPARING parvw.
SELECT spras
parvw
vtext
FROM tpart
INTO TABLE i_tvbpa
FOR ALL ENTRIES IN i_tpartf
WHERE parvw = i_tpartf-parvw AND spras = sy-langu.
IF NOT i_vbap[] IS INITIAL.
SELECT vbeln
posnr
etenr
ettyp
lfrel
edatu
FROM vbep
INTO TABLE i_vbep
FOR ALL ENTRIES IN i_vbap
WHERE vbeln = i_vbap-vbeln.
ENDIF.
SORT i_vbap BY vbeln posnr.
to fetch data from internal table to print report
LOOP AT i_vbak.
WRITE:/1 sy-vline,10 v_chkbox AS CHECKBOX, i_vbak-vbeln,28
sy-vline,
30 i_vbak-erdat,48 sy-vline,
50 i_vbak-vkorg, 132 sy-vline.
ENDLOOP.
ULINE.
ENDFORM. " SELECT_HEADERDATA
*& Form ZF_SELECT_DETAILS
SUBROUTINE FOR DISPLAYING SELECTED ITEM DETAILS DATA
--> p1 text
<-- p2 text
FORM zf_select_details .
vflag = 0.
WRITE:/1 sy-vline,10 text-006 COLOR 3,28 sy-vline,
30 text-007 COLOR 3, 48 sy-vline,
50 text-008 COLOR 3, 68 sy-vline,
70 text-022 COLOR 3, 132 sy-vline.
ULINE.
CLEAR i_selvbap.
CLEAR i_final.
REFRESH i_selvbap.
REFRESH i_final.
CLEAR i_mat1.
vnline = 7.
DO.
READ LINE vnline FIELD VALUE i_vbak-vbeln v_chkbox.
" READING LINES FROM BASIC LIST.
IF sy-subrc <> 0. " no lines read.
EXIT.
ENDIF.
IF v_chkbox = 'X'.
" checking of selected items from basic list.
*alpha conversion function - During conversion from the external to the
*internal format, the system checks to see
*if input is purely nummeric or not ,if not all spaces to the left of
*the value are filled with zeroes ('0').
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = i_vbak-vbeln
IMPORTING
output = i_selvbap-vbeln.
APPEND i_selvbap.
" appending values from header line to body.
flag = flag + 1.
" TO CHECK VALUE OF CHECKBOX.
CLEAR i_vbak.
" clearing of header line after appending.
ENDIF.
vnline = vnline + 1.
ENDDO.
IF flag <> 0.
CLEAR i_final.
CHECK NOT i_selvbap[] IS INITIAL.
LOOP AT i_selvbap.
LOOP AT i_vbap WHERE vbeln = i_selvbap-vbeln.
READ TABLE i_mat1 WITH KEY matnr = i_vbap-matnr BINARY SEARCH.
IF sy-subrc = 0.
i_final-vbeln = i_vbap-vbeln.
i_final-posnr = i_vbap-posnr.
i_final-matnr = i_vbap-matnr.
i_final-maktx = i_mat1-maktx.
APPEND i_final.
CLEAR i_mat1.
ENDIF.
ENDLOOP.
CLEAR i_selvbap.
CLEAR i_vbap.
CLEAR i_final.
ENDLOOP.
ENDIF.
IF flag = 0.
MESSAGE e005.
ENDIF.
to fetch data from internal table to print report
LOOP AT i_final.
WRITE:/1 sy-vline,10 v_chkbox1 AS CHECKBOX,i_final-vbeln,28 sy-vline
30 i_final-posnr, 48 sy-vline,
50 i_final-matnr, 68 sy-vline,
70 i_final-maktx,
132 sy-vline.
ENDLOOP.
ULINE.
ENDFORM. " ZF_SELECT_DETAILS
*& Form ZF_TOLS
text
--> p1 text
<-- p2 text
FORM zf_tols .
*printing header of secondary list
ULINE.
WRITE:/10 text-023,20 text-001 COLOR 4, 45 text-019 COLOR 4.
WRITE: 80 text-024,90 sy-datum .
WRITE:/10 text-025,20 text-027,80 text-026,90 sy-pagno.
WRITE:/.
ULINE.
ENDFORM. " ZF_TOLS
*& Form ZF_TOP
text
--> p1 text
<-- p2 text
FORM zf_top .
*printing header of basic list
ULINE.
WRITE:/10 text-023,20 text-001 COLOR 4 ,45 text-002 COLOR 4.
WRITE: 80 text-024, 90 sy-datum.
WRITE:/10 text-025,20 text-027,80 text-026,90 sy-pagno.
ULINE.
WRITE:/1 sy-vline, 10 text-003 COLOR 3 ,28 sy-vline,
30 text-004 COLOR 3 ,48 sy-vline,
50 text-005 COLOR 3 ,132 sy-vline.
ULINE.
ENDFORM. " ZF_TOP
*& Form ZF_PARTNERDETAILS
SUBROUTINE FOR DISPLAYING SELECTED PARTNER DETAILS DATA
--> p1 text
<-- p2 text
FORM zf_partnerdetails .
IF vflag = 1.
WRITE:/1 sy-vline,10 text-016 COLOR 3,28 sy-vline,
30 text-017 COLOR 3,48 sy-vline,
30 text-018 COLOR 3,48 sy-vline,
70 text-021 COLOR 3, 132 sy-vline.
ULINE.
CLEAR i_selvbpa.
REFRESH i_selvbpa.
" clearing work area and body of internal tables
REFRESH i_finalpd.
vnline = 7.
DO.
CLEAR i_selvbpa.
READ LINE vnline FIELD VALUE i_vbak-vbeln v_chkbox.
" READING LINES FROM BASIC LIST.
IF sy-subrc <> 0.
" NO LINES READ
EXIT.
ENDIF.
IF v_chkbox = 'X'.
" if any value is selected
*converts any number into a string fill with zeroes, with the number at
*the extreme right.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = i_vbak-vbeln
IMPORTING
output = i_selvbpa-vbeln.
APPEND i_selvbpa.
CLEAR i_vbak.
flag = flag + 1.
ENDIF.
vnline = vnline + 1.
ENDDO.
IF flag <> 0.
CHECK NOT i_selvbpa[] IS INITIAL.
LOOP AT i_selvbpa.
LOOP AT i_vbpa WHERE vbeln = i_selvbpa-vbeln.
READ TABLE i_tvbpa WITH KEY parvw = i_vbpa-parvw BINARY SEARCH
IF sy-subrc = 0..
i_finalpd-vbeln = i_vbpa-vbeln.
i_finalpd-posnr = i_vbpa-posnr.
i_finalpd-parvw = i_vbpa-parvw.
i_finalpd-vtext = i_tvbpa-vtext.
APPEND i_finalpd.
CLEAR i_tvbpa.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDIF.
IF flag = 0.
MESSAGE e005.
ENDIF.
LOOP AT i_finalpd.
WRITE:/1 sy-vline,10 i_finalpd-vbeln, 28 sy-vline,
30 i_finalpd-posnr, 48 SY-VLINE,
30 i_finalpd-parvw, 48 sy-vline,
70 i_finalpd-vtext, 132 sy-vline.
ENDLOOP.
ULINE.
ENDIF.
ENDFORM. " ZF_PARTNERDETAILS
*& Form ZF_SCHEDULEDATA
SUBROUTINE FOR DISPLAYING SELECTED ITEM SCHEDULE DATA
--> p1 text
<-- p2 text
FORM zf_scheduledata .
vflag = 0.
WRITE:/1 sy-vline,10 text-009 COLOR 3,18 sy-vline,
20 text-011 COLOR 3,38 sy-vline,
40 text-012 COLOR 3,58 sy-vline,
60 text-013 COLOR 3,78 sy-vline,
80 text-020 COLOR 3,98 sy-vline,
100 text-015 COLOR 3,132 sy-vline.
ULINE.
CLEAR i_selvbep.
REFRESH i_selvbep.
vnline1 = 5.
CLEAR flag.
CLEAR i_final.
REFRESH i_finalsd.
DO.
READ LINE vnline1 FIELD VALUE i_final-vbeln v_chkbox1 i_final-posnr
. " READING LINES FROM BASIC LIST.
IF sy-subrc <> 0.
EXIT.
ENDIF.
IF v_chkbox1 = 'X'.
*converts any number into a string fill with zeroes, with the number at
*the extreme right
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = i_final-vbeln
IMPORTING
output = i_selvbep-vbeln.
i_selvbep-posnr = i_final-posnr.
APPEND i_selvbep.
CLEAR i_final.
flag = flag + 1.
ENDIF.
vnline1 = vnline1 + 1.
ENDDO.
IF flag <> 0.
CHECK NOT i_selvbep[] IS INITIAL.
LOOP AT i_selvbep.
LOOP AT i_vbep WHERE vbeln = i_selvbep-vbeln AND posnr =
i_selvbep-posnr.
i_finalsd-vbeln = i_vbep-vbeln.
i_finalsd-posnr = i_vbep-posnr.
i_finalsd-etenr = i_vbep-etenr.
i_finalsd-ettyp = i_vbep-ettyp.
i_finalsd-lfrel = i_vbep-lfrel.
i_finalsd-edatu = i_vbep-edatu.
APPEND i_finalsd.
CLEAR i_selvbep.
CLEAR i_vbep.
CLEAR i_finalsd.
ENDLOOP.
ENDLOOP.
ENDIF.
IF flag = 0.
MESSAGE e005.
ENDIF.
LOOP AT i_finalsd.
WRITE:/1 sy-vline,10 i_finalsd-vbeln,18 sy-vline,
20 i_finalsd-posnr, 38 sy-vline,
40 i_finalsd-etenr, 58 sy-vline,
60 i_finalsd-ettyp, 78 sy-vline,
80 i_finalsd-lfrel, 98 sy-vline,
100 i_finalsd-edatu,132 sy-vline.
CLEAR i_finalsd.
ENDLOOP.
ULINE.
ENDFORM. " ZF_SCHEDULEDATA
*& Form ZF_PARTNERDETAILS1
text
--> p1 text
<-- p2 text
FORM zf_partnerdetails1 .
vflag = 1.
WRITE:/1 sy-vline,10 text-016 COLOR 3,18 sy-vline,
20 text-017 COLOR 3,38 sy-vline,
40 text-018 COLOR 3,58 sy-vline,
60 text-021 COLOR 3,78 sy-vline,
132 sy-vline.
ULINE.
CLEAR i_selvbpa1.
REFRESH i_selvbpa1.
REFRESH i_finalpd1.
vnline1 = 7.
DO.
CLEAR I_SELVBEP.
READ LINE vnline1 FIELD VALUE i_final-vbeln v_chkbox1 i_final-posnr
. " READING LINES FROM BASIC LIST.
IF sy-subrc <> 0.
EXIT.
ENDIF.
IF v_chkbox1 = 'X'.
*converts any number into a string fill with zeroes, with the number at
*the extreme right
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = i_final-vbeln
IMPORTING
output = i_selvbpa1-vbeln.
i_selvbpa1-posnr = i_final-posnr.
APPEND i_selvbpa1.
CLEAR i_final.
flag = flag + 1.
ENDIF.
vnline1 = vnline1 + 1.
ENDDO.
IF flag <> 0.
CLEAR i_vbpa.
CLEAR i_finalpd1.
CHECK NOT i_selvbpa1[] IS INITIAL.
LOOP AT i_selvbpa1.
LOOP AT i_vbpa WHERE vbeln = i_selvbpa1-vbeln.
CLEAR i_finalpd1.
IF sy-subrc = 0.
i_finalpd1-vbeln = i_vbpa-vbeln.
IF i_vbpa-posnr = 0 OR i_vbpa-posnr = ''.
i_finalpd1-parvw1 = 'NO DATA EXISTS'.
ELSE.
i_finalpd1-posnr = i_vbpa-posnr.
i_finalpd1-parvw = i_vbpa-parvw.
i_finalpd1-vtext = i_vbpa-vtext.
i_finalpd1-kunnr = i_vbpa-kunnr.
ENDIF.
APPEND i_finalpd1.
IF i_finalpd1-vbeln = i_selvbpa1-vbeln.
EXIT.
ENDIF.
CLEAR i_vbpa.
CLEAR i_finalpd1.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDIF.
IF flag = 0.
MESSAGE e005.
ENDIF.
fetching data from internal table for printing.
LOOP AT i_finalpd1.
WRITE:/1 sy-vline,10 i_finalpd1-vbeln,18 sy-vline,
20 I_FINALPD1-POSNR, 38 SY-VLINE,
40 i_finalpd1-parvw1,
58 SY-VLINE,
60 i_finalpd1-vtext,
78 SY-VLINE,
80 i_finalpd1-kunnr,
132 sy-vline.
ENDLOOP.
ULINE.
ENDFORM. " ZF_PARTNERDETAILS1
2nd is :-
REPORT Z8NB_SHA10_1
NO STANDARD PAGE HEADING
LINE-COUNT 30
LINE-SIZE 170
MESSAGE-ID Z8NBSHADOW.
T A B L E D E C L A R A T I O N *
TABLES : LIKP. " Delivery Header.
T Y P E D E C L A R A T I O N *
**-- Type decleration for Delivery Header
TYPES : BEGIN OF T_LIKP,
VBELN LIKE LIKP-VBELN, " Delivery Number
ERDAT LIKE LIKP-ERDAT, " Date on which record was craeted
KUNNR LIKE LIKP-KUNNR, " Sold-to-party
KUNAG LIKE LIKP-KUNAG, " Ship-to-party
TRMTYP LIKE LIKP-TRMTYP, " Means of transport
END OF T_LIKP.
**-- Type decleration for Delivery Items
TYPES : BEGIN OF T_LIPS,
VBELN LIKE LIPS-VBELN, " Delivery Number
POSNR LIKE LIPS-POSNR, " Delivery Item Number
MATNR LIKE LIPS-MATNR, " Material Number
LFIMG LIKE LIPS-LFIMG , " DELIVERED QTY
MEINS LIKE LIPS-MEINS, " Unit of Measurement
BRGEW LIKE LIPS-BRGEW, " Gross Weight
GEWEI LIKE LIPS-GEWEI, " Weight Unit
VOLUM LIKE LIPS-VOLUM, " Volumn
VOLEH LIKE LIPS-VOLEH, " Volumn Unit
END OF T_LIPS.
**-- Type decleration for Customer Details
TYPES : BEGIN OF T_KNA1,
KUNNR LIKE KNA1-KUNNR, " Customer Number
NAME1 LIKE KNA1-NAME1, " Name1
NAME2 LIKE KNA1-NAME2, " Name2
STRAS LIKE KNA1-STRAS, " House/ Street Number
REGIO LIKE KNA1-REGIO, " Region
ORT01 LIKE KNA1-ORT01, " City
LAND1 LIKE KNA1-LAND1, " Country Key
TELF1 LIKE KNA1-TELF1, " First Telephone Number
END OF T_KNA1.
**-- Type decleration for Partner Function
TYPES : BEGIN OF T_KNVP,
KUNNR LIKE KNVP-KUNNR, " Customer Number
PARVW LIKE KNVP-PARVW, " Partner Function
KUNN2 LIKE KNVP-KUNN2, " Cust no of business partner
END OF T_KNVP.
**-- Type decleration for Shipment Header
TYPES : BEGIN OF T_VTTK,
TKNUM LIKE VTTK-TKNUM, " Shipment Number
TNDR_CRNM LIKE VTTK-TNDR_CRNM, " Carrier
END OF T_VTTK.
**-- Type decleration for Shipment Item
TYPES : BEGIN OF T_VTTP,
TKNUM LIKE VTTP-TKNUM, " Shipment Number
VBELN LIKE VTTP-VBELN, " Order Number
END OF T_VTTP.
**-- Type decleration for Material Description
TYPES : BEGIN OF T_MAKT,
MATNR LIKE MAKT-MATNR, " Material Number
MAKTX LIKE MAKT-MAKTX, " Material Description
END OF T_MAKT.
**-- Type decleration for Final table containing all item details
TYPES : BEGIN OF T_FINAL,
VBELN LIKE LIPS-VBELN, " Delivery Number
POSNR LIKE LIPS-POSNR, " Delivery Item Number
MATNR LIKE LIPS-MATNR, " Material Number
LFIMG LIKE LIPS-LFIMG , " DELIVERED QTY
MEINS LIKE LIPS-MEINS, " Unit of Measurement
BRGEW LIKE LIPS-BRGEW, " Gross Weight
GEWEI LIKE LIPS-GEWEI, " Weight Unit
VOLUM LIKE LIPS-VOLUM, " Volumn
VOLEH LIKE LIPS-VOLEH, " Volumn Unit
MAKTX LIKE MAKT-MAKTX, " Material Description
END OF T_FINAL.
C O N S T A N T D E C E L E R A T I O N *
CONSTANTS: C_RE(4) TYPE C VALUE 'RE', "Bill-to-party
C_EQ(4) TYPE C VALUE 'EQ', "Equal To
C_I(2) TYPE C VALUE 'I'. "Inclusion
V A R I A B L E D E C E L E R A T I O N *
DATA : V_SUM TYPE LIPS-LFIMG, "For calculating total of Quantity.
V_SUM_FINAL TYPE LIPS-LFIMG, "For displaying total
V_DESC TYPE C LENGTH 20. "Storing Description
I N T E R N A L D E C L A R A T I O N *
**-- Internal table for delivery header data
DATA: IT_LIKP TYPE STANDARD TABLE OF T_LIKP WITH HEADER LINE,
**-- Internal table for delivery item data
IT_LIPS TYPE STANDARD TABLE OF T_LIPS WITH HEADER LINE,
**-- Internal table for bill-to-party details
IT_KNA1 TYPE STANDARD TABLE OF T_KNA1 WITH HEADER LINE,
**-- Internal table to store partner function data
IT_KVNP TYPE STANDARD TABLE OF T_KNVP WITH HEADER LINE,
**-- Internal table for shipment header data
IT_VTTK TYPE STANDARD TABLE OF T_VTTK WITH HEADER LINE,
**-- Internal table for shipmant item data
IT_VTTP TYPE STANDARD TABLE OF T_VTTP WITH HEADER LINE,
**-- Internal table for material description
IT_MAKT TYPE STANDARD TABLE OF T_MAKT WITH HEADER LINE,
**-- Internal table for final item details
IT_FINAL TYPE STANDARD TABLE OF T_FINAL WITH HEADER LINE,
**-- Temporary internal table for Shipment Item
IT_VTTP_TEMP TYPE STANDARD TABLE OF T_VTTP WITH HEADER LINE,
**-- Temporary internal table for delivery item
IT_LIPS_TEMP TYPE STANDARD TABLE OF T_LIPS WITH HEADER LINE,
**-- Temporary internal table for delivery header
IT_LIKP_TEMP TYPE STANDARD TABLE OF T_LIKP WITH HEADER LINE.
**-- Ranges for Inquiry/Quotation
RANGES R_CUSTOMER FOR KNA1-KUNNR.
S E L C T I O N S C R E E N *
**-- Selection screen containing Delivery no as the obligatory field
SELECTION-SCREEN BEGIN OF BLOCK CHARLY WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_VBELN FOR LIKP-VBELN OBLIGATORY.
SELECTION-SCREEN END OF BLOCK CHARLY.
I N I T I A L I Z A T I O N *
INITIALIZATION.
**-- Clear all internal tables
CLEAR : IT_LIKP,
IT_LIPS,
IT_KNA1,
IT_KVNP,
IT_VTTK,
IT_VTTP,
IT_MAKT,
IT_FINAL,
IT_VTTP_TEMP,
R_CUSTOMER,
V_SUM,
V_SUM_FINAL,
V_DESC.
**-- Refresh all internal tables
REFRESH : IT_LIKP,
IT_LIPS,
IT_KNA1,
IT_KVNP,
IT_VTTK,
IT_VTTP,
IT_MAKT,
IT_FINAL,
IT_VTTP_TEMP,
R_CUSTOMER.
A T S E L E C T I O N S C R E E N ( V A L I D A T I O N S ) *
AT SELECTION-SCREEN.
**-- Check the sales order number exists in the database table or not
SELECT SINGLE VBELN
FROM LIKP
INTO IT_LIKP
WHERE VBELN IN S_VBELN.
**-- If no single data selected display error message.
IF SY-SUBRC <> 0.
MESSAGE E000.
ENDIF.
S T A R T O F S E L E C T I O N *
START-OF-SELECTION.
**-- Fetch data from the transprant tables into the internal tables
PERFORM GET_DATA.
**-- Final table for complete item data
PERFORM FINAL_DATA.
E N D O F S E L E C T I O N *
END-OF-SELECTION.
**-- Display of Delivery Note
PERFORM DISPLAY_DATA.
*& Form GET_DATA
text
FORM GET_DATA .
**-- Fetch data from Delivery Header Table ( LIKP )
SELECT VBELN
ERDAT
KUNNR
KUNAG
TRMTYP
FROM LIKP
INTO TABLE IT_LIKP
WHERE VBELN IN S_VBELN
ORDER BY VBELN.
**-- Check SY_SUBRC.
IF SY-SUBRC <> 0 .
ENDIF.
**-- If record is present in IT_LIKP internal table then fetch data from
**-- Delivery Item table (LIPS)
IF NOT IT_LIKP[] IS INITIAL.
SELECT VBELN
POSNR
MATNR
LFIMG
MEINS
BRGEW
GEWEI
VOLUM
VOLEH
FROM LIPS
INTO TABLE IT_LIPS
FOR ALL ENTRIES IN IT_LIKP
WHERE VBELN = IT_LIKP-VBELN.
**-- If record found, sort the internal table on delivery no and item no
IF SY-SUBRC = 0.
SORT IT_LIPS BY VBELN POSNR.
ENDIF.
ENDIF.
**-- If record present in IT_LIPS internal table then fetch data from
**-- Shipment Item Table where delivery number is same
IF NOT IT_LIPS[] IS INITIAL.
SELECT TKNUM
VBELN
FROM VTTP
INTO TABLE IT_VTTP
FOR ALL ENTRIES IN IT_LIPS
WHERE VBELN = IT_LIPS-VBELN.
**-- If record found, sort the internal table on shipment no
IF SY-SUBRC = 0.
SORT IT_VTTP BY TKNUM.
ENDIF.
ENDIF.
**-- Move records in IT_LIPS to an temporary internal table for
**-- removing the duplicate entries of material number.
IT_LIPS_TEMP[] = IT_LIPS[].
SORT IT_LIPS_TEMP BY MATNR.
DELETE ADJACENT DUPLICATES FROM IT_LIPS_TEMP
COMPARING MATNR.
IF NOT IT_LIPS_TEMP[] IS INITIAL.
**-- Fetch Material description from MAKT for all materials in
**-- IT_LIPS_TEMP
SELECT MATNR
MAKTX
INTO TABLE IT_MAKT
FROM MAKT FOR ALL ENTRIES IN IT_LIPS_TEMP
WHERE MATNR = IT_LIPS_TEMP-MATNR.
**-- If record found, sort the internal table on Matreial No.
IF SY-SUBRC = 0.
SORT IT_MAKT BY MATNR.
ENDIF.
ENDIF.
**-- Transfer data in shipment item internal table to a temporary
**-- internal table to delete duplicate entries of shipment number.
IT_VTTP_TEMP[] = IT_VTTP[].
SORT IT_VTTP_TEMP BY TKNUM.
DELETE ADJACENT DUPLICATES FROM IT_VTTP_TEMP
COMPARING TKNUM.
**-- If record found in IT_VTTP_TEMP then fetch shipment no and carrier
**--from Shipment Header Table(VTTK).
IF NOT IT_VTTP_TEMP[] IS INITIAL.
SELECT TKNUM
TNDR_CRNM
FROM VTTK
INTO TABLE IT_VTTK
FOR ALL ENTRIES IN IT_VTTP_TEMP
WHERE TKNUM = IT_VTTP_TEMP-TKNUM.
**-- If record found, sort the internal table on shipment no
IF SY-SUBRC = 0.
SORT IT_VTTK BY TKNUM.
ENDIF.
ENDIF.
**-- Move the data of IT_LIKP to an internal table to remove the
**-- duplicate entries of sold-to-party number.
IT_LIKP_TEMP[] = IT_LIKP[].
SORT IT_LIKP_TEMP BY KUNAG.
DELETE ADJACENT DUPLICATES FROM IT_LIKP_TEMP
-
hi yesterday i downloaded a software from i tunes for keyboard short cut and i don't know how to use them and install them, how to use keyboard shorts bought from i tunes
You can install it on your iOS device (iPad, iPhone, iPod Touch) either by redownloading it directly on the device via the Purchased tab in the App Store app on it, or by connecting the device to your computer's iTunes and syncing it to it.
Syncing apps from a Mac : iTunes 11 for Mac: Sync and organize iOS apps
from a PC : iTunes 11 for Windows: Sync and organize iOS apps
As to how to then use the app, if the description on the app's description page in the store doesn't describe how to use it in enough detail, then is there a link to the developer's website on its description page, and does that have details ? -
How to use the same services-config for the local and remote servers.
My flex project works fine using the below but when I upload my flash file to the server I doesn't work, all the relative paths and files are the same execpt the remote one is a linux server.
<?xml version="1.0" encoding="UTF-8"?>
<services-config>
<services>
<service id="amfphp-flashremoting-service"
class="flex.messaging.services.RemotingService"
messageTypes="flex.messaging.messages.RemotingMessage">
<destination id="amfphp">
<channels>
<channel ref="my-amfphp"/>
</channels>
<properties>
<source>*</source>
</properties>
</destination>
</service>
</services>
<channels>
<channel-definition id="my-amfphp" class="mx.messaging.channels.AMFChannel">
<endpoint uri="http://localhost/domainn.org/amfphp/gateway.php" class="flex.messaging.endpoints.AMFEndpoint"/>
</channel-definition>
</channels>
</services-config>
I think the problem is the line
<endpoint uri="http://localhost/domainn.org/amfphp/gateway.php" class="flex.messaging.endpoints.AMFEndpoint"/>
but I'm not sure how to use the same services-config for the local and remote servers.paul.williams wrote:
You are confusing "served from a web-server" with "compiled on a web-server". Served from a web-server means you are downloading a file from the web-server, it does not necessarily mean that the files has been generated / compiled on the server.
The server.name and server.port tokens are replaced at runtime (ie. on the client when the swf has been downloaded and is running) not compile time (ie. while mxmlc / ant / wet-tier compiler is running). You do not need to compile on the server to take advantage of this.
Hi Paul,
In Flex, there is feature that lets developer to put all service-config.xml file configuration information into swf file. with
-services=path/to/services-config.xml
IF
services-config.xml
have tokens in it and user have not specified additional
-context-root
and this swf file is not served from web-app-server (like tomcat for example) than it will not work,
Flash player have no possible way to replace token values of service-config.xml file durring runtime if that service-config.xml file have been baked into swf file during compilation,
for example during development you can launch your swf file from your browser with file// protocol and still be able to access blazeDS services if
-services=path/to/services-config.xml
have been specified durring compilation.
I dont know any better way to exmplain this, but in summary there is two places that you can tell swf about service confogiration,
1) pass -services=path/to/services-config.xml parameter to compiler this way you tell swf file up front about all that good stuff,
or 2) you put that file on the webserver( in this case, yes you should have replacement tokens in that file) and they will be repaced at runtime . -
How to use the same email address for outgoing email on two iPads?
How to use the same email address for outgoing email on two iPads?. My wife and I both use the same email address. We receive the same incoming email on both iPads but are unable to send email from my wife's iPad. She is using an iPad 2 and is usng IOS 6.0.1
Hi Creaturekeeper,
If you've added the account into the iPad and you are unable to send email from it, then please follow the troubleshooting in the article below.
Get help with Mail on iPhone, iPad, and iPod touch - Apple Support
Take care,
Alex H. -
Hi All,
How to use the manually entered Hours/Days in the Duration field for BG_ABSENCE_DURATION fast formula?
Requirement is to restrict employees for applying for leave more than the accrued balance. In SSHR, apply leave functionality, the employee enters the start date, end date and duration manually. The entered duration must be used in the fast formula to check against available balance.
In the BG_ABSENCE_DURATION FF, I have a function to calculate the net accrual balance as on the calculation date.
I want to add the logic as - If to_number(Duration) /*[manually entered value]*/ > net accrual balance then
Duration = 'FAILED'
invalid_msg = 'Error'
return duration, invalid_msg
Thanks!Hi,
We have a standard functionality to override the duration calculation and you don't need to add a validation for the same. Please set the value of profile option HR: Absence Duration Auto Overwrite to Yes
When you do this user will not have to enter the duration value manually. It will get auto calculated based on the duration calculation in BG_ABSENCE_DURATION when you click on the next button.
For not allowing negative leaves to be applied, If you are on R12 then, this is a standard functionality and you need to set profile option HR Allow Absence Negative Balance to No
If you are on 11i then refer Note: 268171.1: How Do You Stop Accrual Plans from Going Negative?
Try and let me know in case you need further help.
Thanks,
Sanjay -
How to use Sql data source from Essbase 9.3.1
Hi All,
How to use Sql data source from Essbase 9.3.1 for ASO cube.Are there any rules and limitations for that.
Do we need to create any data source connection for this purpose. If there please let me know the dteps to create that connection.
RegardsYes you need to create one DSN connection and you have to use DSN name and login details at the time of building/loading of the outline.
Create DSN
Goto Administrative tools -> DataSources (ODBC) and add the DSN name and specify the Server name of SQL and login details and database.
goto data prep editor and click on File Menu and Click on Open SQL option Next window opens.
There you have to enter the details of the DSN connection and SQL query to build/load.
Thanks,
Prathap -
Hi, I have a question on SMP3 and AppDevelopment (Agentry): how to use GCM (Google cloud Messaging) for Agentry Application for PUSH notification
Pratik,
Let me walk you through the flow with the assumption that the user is on an Android device and "connected" to the Agentry server.
An emergency workorder is created in SAP and assigned to the technician.
The SAP backend system will notify the Agentry server via an XML message that there is a workorder to send.
Agentry will get the details and if the user is connected attempt to send the workorder to the device via the Push mechanism
If the push fails to reach the Agentry client, the Agentry server will send a GCM message to the user
When the user returns to the Agentry client, the normal push processing / fetch will occur to receive the workorder from the server assuming the push retrys are in effect.
So, essentially you should not have to do anything to get the GCM to work as a secondary notification mechanism.
If you are looking to do something else with GCM that would be outside of Agentry.
--Bill -
How to use the same POWL query for multiple users
Hello,
I have defined a POWL query which executes properly. But if I map the same POWL query to 2 portal users and the 2 portal users try to access the same page simultaneously then it gives an error message to one of the users that
"Query 'ABC' is already open in another session."
where 'ABC' is the query name.
Can you please tell me how to use the same POWL query for multiple users ?
A fast reply would be highly appreciated.
Thanks and Regards,
SandhyaBatch processing usually involves using actions you have recorded. In Action you can insert Path that can be used during processing documents. Path have some size so you may want to only process document that have the same size. Look in the Actions Palette fly-out menu for insert path. It inserts|records the current document work path into the action being worked on and when the action is played it inserts the path into the document as the current work path..
-
WSUS 3.2 work on Win2008 R2, how to use it deploy MS patch for Win 2012 ?
WSUS 3.2 work on Win2008 R2, how to use it deploy MS patch for Win 2012 ?
I have installed KB2734608, but when I search MS13-101 , no patch for Win 2012.
Can you help me resolve this problem ?
ThanksOn Thu, 10 Apr 2014 06:01:48 +0000, fujitsu08 wrote:
WSUS 3.2 work on Win2008 R2, how to use it deploy MS patch for Win 2012 ?
WSUS has its own, dedicated forum where the WSUS experts answer questions.
You should repost your question here:
http://social.technet.microsoft.com/Forums/windowsserver/en-US/home?forum=winserverwsus
Paul Adare - FIM CM MVP
Aibohphobia: n. Fear of Palindromes -
How to use find my iPhone app for windows pc
How to use find my iPhone app for windows pc ... Is it possible to do..
Or what is the closest app to do that.,,,,,iPhone User Guide (For iOS 5.0 Software)
iCloud: Find My iPhone
iCloud: Find My iPhone overview
iCloud: Set up Find My iPhone -
How to use KAUF_AUFNR_CHANGE to change Process order and Update a field
Hello ,
I am working on 4.6C system and I hve a requirement to change Process order and Update a field value passed from a ABAP Program. I am looking for suitable Function modules or Bapi ( available in 4.6c) .
I have come across FM KAUF_AUFNR_CHANGE . Would appreciate any guidance on how to use the FM in my program and Update a field in the Process order.
Many Thanks!All the importing parameters of this function module have a striaght structure of the transperent tables...
i have checked the code and it has a modify statement based on the importing parameter..
pick one record in databas and pass it to the importing parameters, with some values changed...
i think that should work
what values to pass the import values of FM -KAUF_AUFNR_CHANGE.
Edited by: ssm on Aug 4, 2011 7:19 PM -
How can I purge all duplicates from my iTunes library at once?
Someone else asked this question:
Hi
For some reason when I deleted my duplicates it deleted them all from itunes so I had re import them all in and now I have 2-3 duplicates of EVERY song in EVERY album? I have 20GB of duplicates alone! How do I delete them without going mad by deleting individually?"
and it was never answered so I figured I'd make a new thread to try and get some help. I have the same problem in that when I extracted the backup files from my external hdd on my new macbook it created 3-5 duplicates of all my songs. So like the quote above I have 3-5 duplicates of ALL songs from EACH separate artist.
Is it possible to somehow purge all of these duplicates at once, on a macroscopic level? It would take forever to modify individually, as I now have over 27,000 files (originally around 5,500 songs).Use Option > View > Show Exact Duplicate Items as this is normally a more useful selection. You need to manually select all but one of each group to remove. If the duplicates are clearly grouped in time this may not be too hard to achieve.
Alternatively visit Doug's Scripts and avail yourself of Dupin or Dupin Lite.
Message was edited by: turingtest2 - Posted a Windows solution in error. -
How to use SquirrelMail and Require SSL for IMAP Service?
Hello,
Mac OS X Server v.10.4.9 – Open Directory Master
Providing POP, IMAP, SMTP, web services including webmail via SquirrelMail.
PHP v.4.4.4 Nov. 1, 2006
OpenSSL v.0.9.7l Sept. 2006
I need to require SSL for IMAP access, however, I also need to provide webmail access. SquirrelMail does support TSL it seems and that can be configured from /etc/squirrelmail/config/conf.pl and is discussed briefly here: http://www.squirrelmail.org/wiki/SquirrelMailIMAPS .
When I turn on TSL on SquirrelMail and change the IMAP port number to 993 attempting to log into SquirrelMail provides the following error:
Bad request: IMAP server does not appear to support the authentication method selected. Please contact your system administrator.
According to the above noted page from the SquirrelMail site one needs PHP 4.3 and SSLv3 in order for TSL to work, one must also connect to the IMAP server over port 993. Requirements I appear to meet.
So – how can one require the use of SSL for IMAP and still provide webmail access via SquirrelMail?
I have reviewed these three threads:
http://discussions.apple.com/thread.jspa?threadID=912841&tstart=75
http://discussions.apple.com/thread.jspa?messageID=1457773�
http://discussions.apple.com/thread.jspa?messageID=3921004�
However they do not answer the fundamental question of how to use SquirrelMail with SSL required by IMAP. Essentially the conversation revolves around working around the SSL requirement or forgoing it.
Thank you for any assistance.David,
Yet from time to time these same users are in a
circumstance where they need to use webmail, thus
SquirrelMail needs to work. I am not trying to
secure webmail by requiring SSL.
I see, your problem. In this particular case there is a workaround.
Use different ports for postfix and cyrus limited to localhost, thus catering only to SquirrelMail, thus not needing TLS.
Roughly do this (this is just off the top of my head, may contain errors):
For SMTP / Postfix:
Edit /etc/postfix/master.cf
and add:
465 inet n - n - - smtpd
-o smtpdrecipientrestrictions= permit_mynetworks,reject
-o mynetworks=127.0.0.1/32
-o smtpdenforcetls=no
# This will create a port 465 (if you use this alreay pick another one. choose the number wisely, depending ony what is in use on your server)
# This port is only accessible to IP number in "mynetworks"
For IMAP / Cyrus
Edit /etc/cyrus.conf and add (below imap):
imaplocal cmd="imapd -C /etc/imapd-local.conf" listen="127.0.0.1:imap" prefork=0
Next duplicate /etc/imapd.conf and name it imapd-local.conf
Edit /etc/imapd-local.conf
Change
tlsserveroptions: require
to
tlsserveroptions: use
Next edit:
/etc/services
and create a port called "imaplocal"
(you could probably recycle 585 wich is deprecated, check what is in the services file, make sure no duplicate port numbers).
should look something like:
imaplocal 585/udp
imaplocal 585/tcp
When done with all config files:
Save & restart mail services
Point SquirrelMail to the new ports wich should only be accessible to localhost (check with an external client if it holds
Sorry for the "draft style" post, but I don't have much time.
Just ask, if anything isn't clear.
HTH,
Alex
Maybe you are looking for
-
My iPod touch is not detected on iTunes! HELP!!!!
Recently, there were some problems with my computer's wires' connections, so I had to buy a new extension and reconnect everything. I don't know if it has something to do with the problem. I just mentioned it, just in case. Yesterday, when I tried co
-
I am using an iPad 3 with iOS 8 and iTunes 12 under Win8.1/x64. iOS, iTunes, and Win8.1 are all fully updated. I normally perform app updates on the iPad. Upon syncing, updated apps would copy from the iPad to iTunes. Until now. I don't think it is b
-
T Code for Advance Payment to Vendor
What is the T Code for advance payment to vendor
-
Master/Detail form with modal edit
I have a master/detail form that I generated using the wizard that I want to change to have a modal Edit button; i.e. the behavior I want is that the form view is initially read-only and you then have to click an Edit button to make the form editable
-
Internal Orders versus Project Systems
Hi My client is currently using WBS elements for capital projects. Project System is not in scope; thus, we are trying to decide whether we should bring it in scope with limited functionality or use internal orders for capital projects. I'm writing