Os level programming using ABAP
Hi Experts !
i have a requirement where i have to pick up date and time of the generation of a file from a folder in the application server and then place the time and date in and excel sheet.
till now this process is done manually where we have to go to the respective folder and pick up the data and time.
this process has to be automated and hence we need to write ABAP code for the os instructions which are now done manually like double clicking and navigating to another folder.
please provide me whatever info u have on this subject (os level programming).The os used is UNIX.
basics are also required so if u have a good document plz forward this to
[email protected]
thanx!!
You can build a unix command and execute as follows:
DATA unixcmd(200) TYPE c.
CONCATENATE g_dirn lh_rpt1-filen INTO unixcomm.
CONCATENATE 'mv' unixcomm g_dirn INTO unixcomm SEPARATED BY space.
CONCATENATE unixcomm 'bpcs/' lh_rpt1-filen INTO unixcomm.
Executing the system commands witin ABAP.
CALL 'SYSTEM' ID 'COMMAND' FIELD unixcomm.
Similar Messages
-
Links/Docs for Module Pool Programing using abap objects
Hi all,
Can anyone send me links/docs related to Module Pool programing using Abap Objects.
Thanks n Regards
Maruthi Rao. Ahi maruthi rao,
check the below link
http://abapcode.blogspot.com/2007/06/object-oriented-alv-sample-program-to.html -
Module Pool Programming using Abap Objects
Hi gurus.,
I need to create a module pool program with tabstrips and tablecontrols using Abap objects...plz guide me how i can achieve this... i am very much confused.. i dont know how and where to start .. plz send me documents and sample codes related to this topic..Also hoe i can implement f4 help in screen fields.. plz help me with Sample Code....
Regards.,
S.SivakumarHi Marcelo Ramos.,
here is my code without using WebLOg ..
PROGRAM ZACR018_BOXKOD .
TABLES DECLARATION
TABLES: ZACT02_BOXKOD, ZACS018_STR, MARA.
CONTROLS TABC TYPE TABLEVIEW USING SCREEN 102.
END OF TABLES DECLARATION
DEFINE DYN_DECLARE_CREATE.
DATA: &1 TYPE REF TO &2.
CREATE OBJECT &1.
END-OF-DEFINITION.
CONSTANTS C_WERKS TYPE WERKS_D VALUE '7600'.
CONSTANTS C_REPID TYPE SY-REPID VALUE SY-REPID.
CONSTANTS C_VERID TYPE VERID VALUE '0001'.
CONSTANTS C_MDV01 TYPE MDV01 VALUE 'F3LB02'.
CLASS CL_TABLE_CONTROL DEFINITION.
PUBLIC SECTION.
CLASS-DATA: IT_C_DISPLAY TYPE STANDARD TABLE OF ZACS018_STR.
CLASS-DATA: WA_DISPLAY TYPE ZACS018_STR.
CLASS-DATA: WA_COLS LIKE LINE OF TABC-COLS.
CLASS-METHODS M1 IMPORTING WA_C_DISPLAY TYPE ZACS018_STR EXPORTING ZACS018_STR_C TYPE ZACS018_STR.
CLASS-METHODS M2 IMPORTING ZACS018_STR_C TYPE ZACS018_STR CHANGING IT_C_DISPLAY LIKE IT_C_DISPLAY.
CLASS-METHODS M3 IMPORTING SAVE_OK TYPE SY-UCOMM CHANGING C_TABC TYPE CX_TABLEVIEW.
CLASS-METHODS M4 IMPORTING MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN
PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO
SAVE_OK TYPE SY-UCOMM
CHANGING C_TABC TYPE CX_TABLEVIEW.
ENDCLASS.
CLASS CL_TABLE_CONTROL IMPLEMENTATION.
METHOD M1.
ZACS018_STR_C = WA_C_DISPLAY.
ENDMETHOD.
METHOD M2.
DESCRIBE TABLE IT_C_DISPLAY.
IF TABC-CURRENT_LINE > SY-TFILL.
APPEND ZACS018_STR_C TO IT_C_DISPLAY.
ELSE.
MODIFY IT_C_DISPLAY FROM ZACS018_STR_C INDEX TABC-CURRENT_LINE.
ENDIF.
ENDMETHOD.
METHOD M3.
IF SAVE_OK = 'CHECK'.
LOOP AT C_TABC-COLS INTO WA_COLS.
IF WA_COLS-SCREEN-GROUP2 = 'BOT'.
WA_COLS-SCREEN-INPUT = 0.
MODIFY C_TABC-COLS FROM WA_COLS INDEX SY-TABIX.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT C_TABC-COLS INTO WA_COLS.
IF WA_COLS-SCREEN-GROUP2 = 'BOT'.
WA_COLS-SCREEN-INPUT = 1.
MODIFY C_TABC-COLS FROM WA_COLS INDEX SY-TABIX.
ENDIF.
ENDLOOP.
ENDIF.
ENDMETHOD.
METHOD M4.
IF MASTER_PATTERN IS INITIAL OR PATTERNSLNO IS INITIAL.
LOOP AT C_TABC-COLS INTO WA_COLS.
IF WA_COLS-SCREEN-GROUP2 = 'BOT'.
WA_COLS-SCREEN-INPUT = 0.
MODIFY C_TABC-COLS FROM WA_COLS INDEX SY-TABIX.
ENDIF.
ENDLOOP.
ELSE.
IF SAVE_OK NE 'CHECK'.
LOOP AT C_TABC-COLS INTO WA_COLS.
IF WA_COLS-SCREEN-GROUP2 = 'BOT'.
WA_COLS-SCREEN-INPUT = 1.
MODIFY C_TABC-COLS FROM WA_COLS INDEX SY-TABIX.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDMETHOD.
ENDCLASS.
INTERFACE I_DATA.
DATA: WA_MARA TYPE MARA.
DATA: WA_MARC TYPE MARC.
DATA: WA_MAST TYPE MAST.
DATA: WA_STKO TYPE STKO.
DATA: WA_MKAL TYPE MKAL.
DATA: IT_STPOX TYPE STANDARD TABLE OF STPOX.
DATA: WA_STPOX TYPE STPOX.
DATA: WA_ZACT02_BOXKOD TYPE ZACT02_BOXKOD.
DATA: IT_C_DISPLAY TYPE STANDARD TABLE OF ZACS018_STR.
DATA: IT_SORT_DISPLAY TYPE STANDARD TABLE OF ZACS018_STR.
DATA: WA_DISPLAY TYPE ZACS018_STR.
DATA: W_YIELD(5) TYPE P DECIMALS 2.
METHODS PARTNO_VAL IMPORTING PARTCODE TYPE ZACS018_STR-PARTCODE.
METHODS MAINBI_VAL IMPORTING MAINB TYPE ZACS018_STR-MAINB.
METHODS CAVITY_VAL IMPORTING CAVITY TYPE ZACS018_STR-CAVITY.
METHODS GET_COMP_WT IMPORTING PARTCODE TYPE ZACS018_STR-PARTCODE EXPORTING GROSSWT TYPE ZACS018_STR-GROSSWT.
METHODS NETWT_VAL IMPORTING NETWT TYPE ZACS018_STR-NETWT GROSSWT TYPE ZACS018_STR-GROSSWT.
METHODS MASPAT_VAL IMPORTING MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN.
METHODS PATSLNO_VAL IMPORTING PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO
MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN .
METHODS MAX_REF EXPORTING VERSNO TYPE ZACT02_BOXKOD-VERSNO.
METHODS NOOFBOX_VAL IMPORTING BMSCH TYPE ZACT02_BOXKOD-BMSCH.
METHODS TOTTIME_VAL IMPORTING VGW01 TYPE ZACT02_BOXKOD-VGW01.
METHODS TOTRUNWT IMPORTING IT_C_DISPLAY LIKE IT_C_DISPLAY
EXPORTING W_SUM_RUNWT LIKE ZACS018_STR-NETWT.
METHODS TOTCOMP_WT IMPORTING IT_C_DISPLAY LIKE IT_C_DISPLAY
EXPORTING W_SUM_COMPWT LIKE ZACS018_STR-NETWT.
METHODS CHECK_OK IMPORTING SAVE_OK TYPE SY-UCOMM.
METHODS SCREEN_DISPLAY IMPORTING MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN
PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO
SAVE_OK TYPE SY-UCOMM.
METHODS DUP_CHECK IMPORTING IT_C_DISPLAY LIKE IT_C_DISPLAY.
METHODS BOX_YLD IMPORTING W_SUM_COMPWT LIKE ZACS018_STR-NETWT
W_TOT_WT LIKE ZACS018_STR-NETWT
EXPORTING W_YIELD LIKE W_YIELD.
ENDINTERFACE.
CLASS CL_CONTROL_EVENTS DEFINITION.
PUBLIC SECTION.
CLASS-DATA: C_WERKS TYPE WERKS_D VALUE C_WERKS.
INTERFACES I_DATA.
ENDCLASS.
CLASS CL_CONTROL_EVENTS IMPLEMENTATION.
METHOD I_DATA~PARTNO_VAL.
SELECT SINGLE * FROM MARA INTO I_DATA~WA_MARA WHERE MATNR = PARTCODE.
IF SY-SUBRC <> 0.
MESSAGE TEXT-001 TYPE 'E'.
ELSE.
IF I_DATA~WA_MARA-MTART NE 'HALB'.
MESSAGE TEXT-002 TYPE 'E'.
ENDIF.
SELECT SINGLE * FROM MARC INTO I_DATA~WA_MARC WHERE MATNR = PARTCODE AND
WERKS = C_WERKS.
IF SY-SUBRC <> 0.
MESSAGE TEXT-003 TYPE 'E'.
ELSE.
IF I_DATA~WA_MARC-FEVOR NE 'KOD'.
MESSAGE TEXT-004 TYPE 'E'.
ENDIF.
ENDIF.
ENDIF.
SELECT SINGLE * FROM MKAL INTO I_DATA~WA_MKAL WHERE MATNR = PARTCODE AND
WERKS = C_WERKS AND
VERID = C_VERID AND
MDV01 = C_MDV01.
IF SY-SUBRC <> 0.
MESSAGE TEXT-028 TYPE 'E'.
ENDIF.
ENDMETHOD.
METHOD I_DATA~CAVITY_VAL.
SET CURSOR FIELD 'ZACS018_STR-CAVITY' LINE SY-STEPL.
IF CAVITY IS INITIAL.
MESSAGE TEXT-005 TYPE 'E'.
ENDIF.
ENDMETHOD.
METHOD I_DATA~MAINBI_VAL.
SET CURSOR FIELD 'ZACS018_STR-MAINB' LINE SY-STEPL.
IF MAINB IS INITIAL.
MESSAGE TEXT-006 TYPE 'E'.
ENDIF.
ENDMETHOD.
METHOD I_DATA~GET_COMP_WT.
SET CURSOR FIELD 'ZACS018_STR-PARTCODE' LINE SY-STEPL.
*SELECT SINGLE MAST~MATNR
MAST~WERKS
MAST~STLAL
STKO~DATUV
INTO (I_DATAWA_MAST-MATNR,I_DATAWA_MAST-WERKS,I_DATAWA_MAST-STLAL,I_DATAWA_STKO-DATUV)
FROM MAST AS MAST INNER JOIN STKO AS STKO
ON STKOSTLNR = MASTSTLNR AND STKOSTLAL = MASTSTLAL
WHERE MAST~MATNR = PARTCODE AND
STKO~STLST = '1' AND
STKO~STLTY = 'M' AND
STKO~LKENZ = '' AND
STKO~LOEKZ = ''.
SELECT SINGLE * FROM MAST INTO I_DATA~WA_MAST WHERE MATNR = PARTCODE AND
STLAN = '1' AND
STLAL = '01' AND
WERKS = C_WERKS.
IF SY-SUBRC <> 0.
MESSAGE TEXT-009 TYPE 'E'.
ENDIF.
*CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 50
TEXT = TEXT-007.
*WAIT UP TO 2 SECONDS.
REFRESH I_DATA~IT_STPOX.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
FTREL = 'X'
ALEKZ = ' '
ALTVO = ' '
AUFSW = ' '
AUMGB = ' '
AUMNG = 0
AUSKZ = 'X'
AMIND = ' '
BAGRP = ' '
BEIKZ = ' '
BESSL = ' '
BGIXO = 'X'
BREMS = 'X'
CAPID = 'PP01'
CHLST = ' '
COSPR = ' '
CUOBJ = 000000000000000
CUOVS = 0
CUOLS = ' '
DATUV = SY-DATUM
DELNL = SPACE
DRLDT = ' '
EHNDL = '1'
EMENG = 0
ERSKZ = ' '
ERSSL = ' '
FBSTP = ' '
KNFBA = ' '
KSBVO = ' '
MBWLS = ' '
MKTLS = 'X'
MDMPS = ' '
MEHRS = ' '
MKMAT = ' '
MMAPS = ' '
SALWW = ' '
SPLWW = ' '
MMORY = '0'
MTNRV = PARTCODE
NLINK = ' '
POSTP = ' '
RNDKZ = ' '
RVREL = ' '
SANFR = ' '
SANIN = ' '
SANKA = ' '
SANKO = ' '
SANVS = ' '
SCHGT = ' '
STKKZ = ' '
STLAL = '01'
STLAN = '1'
STPST = 0
SVWVO = 'X'
WERKS = C_WERKS
NORVL = ' '
MDNOT = ' '
PANOT = ' '
QVERW = ' '
VERID = ' '
VRSVO = 'X'
IMPORTING
TOPMAT =
DSTST =
TABLES
STB = I_DATA~IT_STPOX
MATCAT =
EXCEPTIONS
ALT_NOT_FOUND = 1
CALL_INVALID = 2
MATERIAL_NOT_FOUND = 3
MISSING_AUTHORIZATION = 4
NO_BOM_FOUND = 5
NO_PLANT_DATA = 6
NO_SUITABLE_BOM_FOUND = 7
CONVERSION_ERROR = 8
OTHERS = 9
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT I_DATA~IT_STPOX INTO I_DATA~WA_STPOX.
SELECT SINGLE FEVOR FROM MARC INTO I_DATA~WA_MARC-FEVOR WHERE MATNR = I_DATA~WA_STPOX-IDNRK AND
WERKS = I_DATA~WA_STPOX-WERKS AND
FEVOR = 'MLT'.
IF SY-SUBRC EQ 0.
GROSSWT = I_DATA~WA_STPOX-MNGLG.
EXIT.
ELSE.
CLEAR GROSSWT.
ENDIF.
ENDLOOP.
IF GROSSWT IS INITIAL.
MESSAGE TEXT-008 TYPE 'E'.
ENDIF.
ENDMETHOD.
METHOD I_DATA~NETWT_VAL.
SET CURSOR FIELD 'ZACS018_STR-NETWT' LINE SY-STEPL.
IF NETWT IS INITIAL.
MESSAGE TEXT-010 TYPE 'E'.
ELSE.
IF NETWT >= GROSSWT.
MESSAGE TEXT-011 TYPE 'E'.
ENDIF.
ENDIF.
ENDMETHOD.
METHOD I_DATA~MASPAT_VAL.
IF MASTER_PATTERN IS INITIAL.
MESSAGE TEXT-014 TYPE 'E'.
ENDIF.
SELECT SINGLE * FROM MARA INTO I_DATA~WA_MARA WHERE MATNR = MASTER_PATTERN.
IF SY-SUBRC <> 0.
MESSAGE TEXT-001 TYPE 'E'.
ELSE.
IF I_DATA~WA_MARA-MTART NE 'FHMI'.
MESSAGE TEXT-012 TYPE 'E'.
ENDIF.
SELECT SINGLE * FROM MARC INTO I_DATA~WA_MARC WHERE MATNR = MASTER_PATTERN AND
WERKS = C_WERKS.
IF SY-SUBRC <> 0.
MESSAGE TEXT-003 TYPE 'E'.
ELSE.
IF I_DATA~WA_MARC-FEVOR NE 'MLD'.
MESSAGE TEXT-013 TYPE 'E'.
ENDIF.
ENDIF.
ENDIF.
ENDMETHOD.
METHOD I_DATA~PATSLNO_VAL.
IF PATTERNSLNO IS INITIAL.
MESSAGE TEXT-016 TYPE 'E'.
ENDIF.
SELECT SINGLE * FROM ZACT02_BOXKOD INTO I_DATA~WA_ZACT02_BOXKOD WHERE MASTER_PATTERN = MASTER_PATTERN
AND PATTERNSLNO = PATTERNSLNO.
IF SY-SUBRC EQ 0.
MESSAGE TEXT-015 TYPE 'E'.
ENDIF.
ENDMETHOD.
METHOD I_DATA~MAX_REF.
SELECT SINGLE MAX( VERSNO ) FROM ZACT02_BOXKOD INTO VERSNO.
VERSNO = VERSNO + 1.
ENDMETHOD.
METHOD I_DATA~NOOFBOX_VAL.
IF BMSCH IS INITIAL.
LOOP AT SCREEN.
IF SCREEN-GROUP2 = 'BOT' AND SCREEN-NAME <> 'ZACT02_BOXKOD-PRD_ACT' AND SCREEN-NAME <> 'ZACT02_BOXKOD-SHOTS'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
MESSAGE TEXT-017 TYPE 'E'.
ENDIF.
ENDMETHOD.
METHOD I_DATA~TOTTIME_VAL.
IF VGW01 IS INITIAL.
MESSAGE TEXT-018 TYPE 'E'.
ENDIF.
IF VGW01 > 480.
MESSAGE TEXT-019 TYPE 'E'.
ENDIF.
ENDMETHOD.
METHOD I_DATA~TOTRUNWT.
CLEAR W_SUM_RUNWT.
LOOP AT IT_C_DISPLAY INTO I_DATA~WA_DISPLAY.
W_SUM_RUNWT = W_SUM_RUNWT + I_DATA~WA_DISPLAY-NETWT * I_DATA~WA_DISPLAY-CAVITY.
ENDLOOP.
ENDMETHOD.
METHOD I_DATA~TOTCOMP_WT.
CLEAR W_SUM_COMPWT.
LOOP AT IT_C_DISPLAY INTO I_DATA~WA_DISPLAY.
W_SUM_COMPWT = W_SUM_COMPWT + I_DATA~WA_DISPLAY-GROSSWT * I_DATA~WA_DISPLAY-CAVITY.
ENDLOOP.
ENDMETHOD.
METHOD I_DATA~CHECK_OK.
IF SAVE_OK = 'CHECK'.
LOOP AT SCREEN.
IF SCREEN-GROUP2 = 'BOT'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
IF SCREEN-GROUP2 = 'BOT'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMETHOD.
METHOD I_DATA~SCREEN_DISPLAY.
IF MASTER_PATTERN IS INITIAL
OR PATTERNSLNO IS INITIAL.
LOOP AT SCREEN.
IF SCREEN-GROUP2 = 'BOT'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSE.
IF SAVE_OK NE 'CHECK'.
LOOP AT SCREEN.
IF SCREEN-GROUP2 = 'BOT'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDMETHOD.
METHOD I_DATA~DUP_CHECK. " IMPORTING IT_C_DISPLAY
DATA: W_PARTCODE LIKE I_DATA~WA_DISPLAY-PARTCODE.
I_DATA~IT_SORT_DISPLAY = IT_C_DISPLAY.
SORT I_DATA~IT_SORT_DISPLAY BY PARTCODE.
CLEAR W_PARTCODE.
LOOP AT I_DATA~IT_SORT_DISPLAY INTO I_DATA~WA_DISPLAY.
IF W_PARTCODE = I_DATA~WA_DISPLAY-PARTCODE.
MESSAGE TEXT-027 TYPE 'E'.
ENDIF.
W_PARTCODE = I_DATA~WA_DISPLAY-PARTCODE.
ENDLOOP.
ENDMETHOD.
METHOD I_DATA~BOX_YLD.
W_YIELD = ( W_SUM_COMPWT / W_TOT_WT ) * 100.
ENDMETHOD.
ENDCLASS.
inherited class for edit mode
CLASS CL_CONTROL_EDIT DEFINITION INHERITING FROM CL_CONTROL_EVENTS .
PUBLIC SECTION.
METHODS GET_DATA IMPORTING MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN
PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO
EXPORTING VERSNO TYPE ZACT02_BOXKOD-VERSNO
CHANGING ZACT02_BOXKOD TYPE ZACT02_BOXKOD
IT_C_DISPLAY LIKE I_DATA~IT_C_DISPLAY
IT_DEL_DISPLAY LIKE I_DATA~IT_C_DISPLAY
TABC TYPE CX_TABLEVIEW.
METHODS PATSLNO_VAL_CHG IMPORTING PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO
MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN .
ENDCLASS.
CLASS CL_CONTROL_EDIT IMPLEMENTATION.
METHOD GET_DATA.
IF MASTER_PATTERN IS NOT INITIAL AND PATTERNSLNO IS NOT INITIAL.
IF IT_C_DISPLAY IS INITIAL.
IF IT_DEL_DISPLAY IS INITIAL.
SELECT SINGLE MAX( VERSNO ) FROM ZACT02_BOXKOD INTO VERSNO WHERE
MASTER_PATTERN = MASTER_PATTERN AND
PATTERNSLNO = PATTERNSLNO.
SELECT SINGLE * FROM ZACT02_BOXKOD INTO ZACT02_BOXKOD WHERE
MASTER_PATTERN = MASTER_PATTERN AND
PATTERNSLNO = PATTERNSLNO AND
VERSNO = VERSNO..
SELECT PARTCODE MAINB CAVITY GROSSWT NETWT FROM ZACT02_BOXKOD INTO
CORRESPONDING FIELDS OF TABLE IT_C_DISPLAY WHERE
MASTER_PATTERN = MASTER_PATTERN AND
PATTERNSLNO = PATTERNSLNO AND
VERSNO = VERSNO.
IT_DEL_DISPLAY[] = IT_C_DISPLAY[].
DESCRIBE TABLE IT_C_DISPLAY.
TABC-LINES = SY-TFILL.
ENDIF.
ENDIF.
ENDIF.
ENDMETHOD.
METHOD PATSLNO_VAL_CHG.
SELECT SINGLE * FROM ZACT02_BOXKOD INTO I_DATA~WA_ZACT02_BOXKOD WHERE MASTER_PATTERN = MASTER_PATTERN
AND PATTERNSLNO = PATTERNSLNO.
IF PATTERNSLNO IS INITIAL.
MESSAGE TEXT-016 TYPE 'E'.
ENDIF.
IF SY-SUBRC <> 0.
MESSAGE TEXT-022 TYPE 'E'.
ENDIF.
ENDMETHOD.
ENDCLASS.
inheriting for display
CLASS CL_CONTROL_DISPLAY DEFINITION INHERITING FROM CL_CONTROL_EDIT .
PUBLIC SECTION.
METHODS GET_DISPLAY_DATA IMPORTING MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN
PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO
VERSNO TYPE ZACT02_BOXKOD-VERSNO
CHANGING IT_C_DISPLAY LIKE I_DATA~IT_C_DISPLAY
ZACT02_BOXKOD TYPE ZACT02_BOXKOD
TABC TYPE CX_TABLEVIEW.
ENDCLASS.
CLASS CL_CONTROL_DISPLAY IMPLEMENTATION.
METHOD GET_DISPLAY_DATA.
SELECT SINGLE * FROM ZACT02_BOXKOD INTO ZACT02_BOXKOD WHERE
MASTER_PATTERN = MASTER_PATTERN AND
PATTERNSLNO = PATTERNSLNO AND
VERSNO = VERSNO..
IF SY-SUBRC <> 0.
MESSAGE TEXT-026 TYPE 'E'.
ENDIF.
SELECT PARTCODE MAINB CAVITY GROSSWT NETWT FROM ZACT02_BOXKOD INTO
CORRESPONDING FIELDS OF TABLE IT_C_DISPLAY WHERE
MASTER_PATTERN = MASTER_PATTERN AND
PATTERNSLNO = PATTERNSLNO AND
VERSNO = VERSNO.
DESCRIBE TABLE IT_C_DISPLAY.
TABC-LINES = SY-TFILL.
ENDMETHOD.
ENDCLASS.
DATA: O_CONTROL_EVENTS TYPE REF TO CL_CONTROL_EVENTS.
DATA: O_CONTROL_EVENTS_EDIT TYPE REF TO CL_CONTROL_EDIT.
DATA: O_CONTROL_EVENTS_DISPLAY TYPE REF TO CL_CONTROL_DISPLAY.
SELECTION SCREEN
END OF SELECTION SCREEN
VARIABLE DECLARATION BEGIN WITH W_
DATA: OK_CODE TYPE SY-UCOMM,
SAVE_OK TYPE SY-UCOMM.
DATA: W_TOT_WT LIKE ZACS018_STR-NETWT,
W_SUM_COMPWT LIKE ZACS018_STR-NETWT,
W_SUM_RUNWT LIKE ZACS018_STR-NETWT,
W_YIELD(5) TYPE P DECIMALS 2.
DATA: W_TIMLO TYPE SY-TIMLO,
W_MODE TYPE SY-UCOMM.
DATA: W_SCREEN_NO TYPE SY-DYNNR.
END OF VARIABLE DECLARATION
WORK AREAS DECLARATION BEGIN WITH WA_
DATA: WA_DISPLAY TYPE ZACS018_STR.
END OF WORK AREAS DECLARATION
INTERNAL TABLES BEGIN WITH IT_
DATA: IT_DISPLAY TYPE ZACS018_STR OCCURS 0.
DATA: IT_DISPLAY_PRD TYPE ZACS018_STR OCCURS 0.
DATA: IT_DEL_DISPLAY TYPE ZACS018_STR OCCURS 0.
DATA: IT_ZACT02_BOXKOD TYPE ZACT02_BOXKOD OCCURS 0 WITH HEADER LINE.
DATA: IT_ZACT02_BOXKOD_DEL TYPE ZACT02_BOXKOD OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF IT_F4MASTERPAT OCCURS 0,
MASTER_PATTERN LIKE ZACT02_BOXKOD-MASTER_PATTERN,
END OF IT_F4MASTERPAT.
DATA: BEGIN OF IT_F4PATSLNO OCCURS 0,
MASTER_PATTERN LIKE ZACT02_BOXKOD-MASTER_PATTERN,
PATTERNSLNO LIKE ZACT02_BOXKOD-PATTERNSLNO,
VERSNO LIKE ZACT02_BOXKOD-VERSNO,
END OF IT_F4PATSLNO.
DATA: IT_EXCLUDE TYPE TABLE OF SY-UCOMM..
DATA : IT_DYNPRO LIKE DYNPREAD OCCURS 0 WITH HEADER LINE.
END OF INTERNAL TABLES DECLARATIONS
LOAD-OF-PROGRAM.
CREATE OBJECT O_CONTROL_EVENTS.
*& Module USER_COMMAND_0100 INPUT
text
MODULE USER_COMMAND_0100 INPUT.
SAVE_OK = OK_CODE.
CLEAR OK_CODE.
W_MODE = SAVE_OK.
CASE SAVE_OK.
WHEN 'CREATE'.
CALL SCREEN 101.
WHEN 'CHANGE'.
CREATE OBJECT O_CONTROL_EVENTS_EDIT.
CALL SCREEN 101.
WHEN 'DISPLAY'.
APPEND 'SAVE' TO IT_EXCLUDE.
APPEND 'CHECK' TO IT_EXCLUDE.
APPEND 'ADD' TO IT_EXCLUDE.
CREATE OBJECT O_CONTROL_EVENTS_DISPLAY.
CALL SCREEN 101.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Module STATUS_0102 OUTPUT
text
MODULE STATUS_0102 OUTPUT.
CALL METHOD CL_TABLE_CONTROL=>M3 EXPORTING SAVE_OK = SAVE_OK CHANGING C_TABC = TABC.
CALL METHOD O_CONTROL_EVENTS->I_DATA~CHECK_OK EXPORTING SAVE_OK = SAVE_OK.
CALL METHOD O_CONTROL_EVENTS->I_DATA~SCREEN_DISPLAY EXPORTING MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN
PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO
SAVE_OK = SAVE_OK.
CALL METHOD CL_TABLE_CONTROL=>M4 EXPORTING MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN
PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO
SAVE_OK = SAVE_OK
CHANGING C_TABC = TABC.
DESCRIBE TABLE IT_DISPLAY.
IF TABC-LINES <= 1.
IF SY-TFILL = 0.
TABC-LINES = 1.
ENDIF.
ENDIF.
IF SAVE_OK NE 'CHECK'.
IF ZACT02_BOXKOD-TOOL_ACT <> 'X'.
CLEAR ZACT02_BOXKOD-PRD_ACT.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ZACT02_BOXKOD-PRD_ACT'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ZACT02_BOXKOD-PRD_ACT'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
CALL METHOD O_CONTROL_EVENTS->I_DATA~TOTRUNWT EXPORTING IT_C_DISPLAY = IT_DISPLAY
IMPORTING W_SUM_RUNWT = W_SUM_RUNWT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~TOTCOMP_WT EXPORTING IT_C_DISPLAY = IT_DISPLAY
IMPORTING W_SUM_COMPWT = W_SUM_COMPWT.
CLEAR W_TOT_WT.
W_TOT_WT = W_SUM_RUNWT + W_SUM_COMPWT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~BOX_YLD EXPORTING W_SUM_COMPWT = W_SUM_COMPWT
W_TOT_WT = W_TOT_WT
IMPORTING W_YIELD = W_YIELD.
IF W_MODE <> 'CREATE'.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ZACT02_BOXKOD-SHOTS'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
IF W_MODE = 'DISPLAY'.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ADD' OR SCREEN-NAME = 'ICON_DELETE'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMODULE. " STATUS_0102 OUTPUT
*& Module STATUS_0101 OUTPUT
text
MODULE STATUS_0101 OUTPUT.
SET PF-STATUS 'STANDARD' EXCLUDING 'SAVE'.
IF W_MODE = 'CREATE'.
SET TITLEBAR 'STANDARD'.
ELSEIF W_MODE = 'DISPLAY'.
SET TITLEBAR 'STD_DIS'.
ELSE.
SET TITLEBAR 'STD_EDIT'.
ENDIF.
IF SAVE_OK = 'CHECK'.
DESCRIBE TABLE IT_DISPLAY.
IF SY-TFILL > 0.
SET PF-STATUS 'STANDARD'.
ENDIF.
ENDIF.
IF W_MODE = 'DISPLAY'.
SET PF-STATUS 'STANDARD' EXCLUDING IT_EXCLUDE.
ENDIF.
IF ZACT02_BOXKOD-MASTER_PATTERN IS NOT INITIAL AND
ZACT02_BOXKOD-PATTERNSLNO IS NOT INITIAL.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'TOP'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
IF W_MODE = 'DISPLAY'.
IF ZACT02_BOXKOD-VERSNO IS INITIAL.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ZACT02_BOXKOD-VERSNO'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ZACT02_BOXKOD-VERSNO'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDMODULE. " STATUS_0101 OUTPUT
*& Module USER_COMMAND_0102 INPUT
text
MODULE USER_COMMAND_0102 INPUT.
SAVE_OK = OK_CODE.
CLEAR OK_CODE.
CASE SAVE_OK.
WHEN 'ADD'.
DESCRIBE TABLE IT_DISPLAY.
IF SY-TFILL >= TABC-LINES.
IF TABC-LINES < 16.
TABC-LINES = SY-TFILL + 1.
ENDIF.
ENDIF.
WHEN 'DEL'.
LOOP AT IT_DISPLAY INTO WA_DISPLAY WHERE MARK = 'X'.
DELETE IT_DISPLAY INDEX SY-TABIX.
ENDLOOP.
DESCRIBE TABLE IT_DISPLAY.
IF SY-TFILL >= 1.
TABC-LINES = SY-TFILL.
ELSE.
TABC-LINES = 1.
ENDIF.
WHEN 'CHECK'.
CALL METHOD O_CONTROL_EVENTS->I_DATA~DUP_CHECK EXPORTING IT_C_DISPLAY = IT_DISPLAY.
WHEN 'SAVE'.
W_TIMLO = SY-TIMLO.
IF W_MODE = 'CREATE'.
PERFORM CREATE_SAVE.
ENDIF.
IF W_MODE = 'CHANGE'.
PERFORM EDIT_SAVE.
ENDIF.
ENDCASE.
IF W_MODE = 'DISPLAY'.
SAVE_OK = 'CHECK'.
ENDIF.
ENDMODULE. " USER_COMMAND_0102 INPUT
*& Module MOD_TABLE INPUT
text
MODULE MOD_TABLE INPUT.
CALL METHOD CL_TABLE_CONTROL=>M2 EXPORTING ZACS018_STR_C = ZACS018_STR CHANGING IT_C_DISPLAY = IT_DISPLAY.
ENDMODULE. " MOD_TABLE INPUT
*& Module ASSIGN OUTPUT
text
MODULE ASSIGN OUTPUT.
CALL METHOD CL_TABLE_CONTROL=>M1 EXPORTING WA_C_DISPLAY = WA_DISPLAY IMPORTING ZACS018_STR_C = ZACS018_STR.
ENDMODULE. " ASSIGN OUTPUT
*& Module CHK_PARTCODE INPUT
text
MODULE CHK_PARTCODE INPUT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~PARTNO_VAL EXPORTING PARTCODE = ZACS018_STR-PARTCODE.
ENDMODULE. " CHK_PARTCODE INPUT
*& Module CHK_CAVITY INPUT
text
MODULE CHK_CAVITY INPUT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~CAVITY_VAL EXPORTING CAVITY = ZACS018_STR-CAVITY.
ENDMODULE. " CHK_CAVITY INPUT
*& Module CHK_MAINB INPUT
text
MODULE CHK_MAINB INPUT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~MAINBI_VAL EXPORTING MAINB = ZACS018_STR-MAINB.
ENDMODULE. " CHK_MAINB INPUT
*& Module GET_COMP_WT INPUT
text
MODULE GET_COMP_WT INPUT.
IF W_MODE <> 'DISPLAY'.
CALL METHOD O_CONTROL_EVENTS->I_DATA~GET_COMP_WT EXPORTING PARTCODE = ZACS018_STR-PARTCODE
IMPORTING GROSSWT = ZACS018_STR-GROSSWT.
ENDIF.
ENDMODULE. " GET_COMP_WT INPUT
*& Module CHK_NETWT INPUT
text
MODULE CHK_NETWT INPUT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~NETWT_VAL EXPORTING NETWT = ZACS018_STR-NETWT
GROSSWT = ZACS018_STR-GROSSWT.
ENDMODULE. " CHK_NETWT INPUT
*& Module CHK_MPAT INPUT
text
MODULE CHK_MPAT INPUT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~MASPAT_VAL EXPORTING MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN.
ENDMODULE. " CHK_MPAT INPUT
*& Module CHK_SLNO INPUT
text
MODULE CHK_SLNO INPUT.
IF W_MODE = 'CREATE'.
CALL METHOD O_CONTROL_EVENTS->I_DATA~PATSLNO_VAL EXPORTING PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO
MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN .
ELSEIF W_MODE = 'CHANGE' .
CALL METHOD O_CONTROL_EVENTS_EDIT->PATSLNO_VAL_CHG EXPORTING PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO
MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN .
CALL METHOD O_CONTROL_EVENTS_EDIT->GET_DATA EXPORTING MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN
PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO
IMPORTING VERSNO = ZACT02_BOXKOD-VERSNO
CHANGING ZACT02_BOXKOD = ZACT02_BOXKOD
IT_C_DISPLAY = IT_DISPLAY
IT_DEL_DISPLAY = IT_DEL_DISPLAY
TABC = TABC.
ELSE.
CALL METHOD O_CONTROL_EVENTS_DISPLAY->PATSLNO_VAL_CHG EXPORTING PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO
MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN .
ENDIF.
ENDMODULE. " CHK_SLNO INPUT
*& Module MAX_VER INPUT
text
MODULE MAX_VER INPUT.
IF W_MODE = 'CREATE'.
CALL METHOD O_CONTROL_EVENTS->I_DATA~MAX_REF IMPORTING VERSNO = ZACT02_BOXKOD-VERSNO.
ENDIF.
IF W_MODE = 'DISPLAY'.
IF ZACT02_BOXKOD-VERSNO IS INITIAL.
MESSAGE TEXT-023 TYPE 'E'.
ENDIF.
IF ZACT02_BOXKOD-MASTER_PATTERN IS NOT INITIAL AND
ZACT02_BOXKOD-PATTERNSLNO IS NOT INITIAL AND
ZACT02_BOXKOD-VERSNO IS NOT INITIAL.
CALL METHOD O_CONTROL_EVENTS_DISPLAY->GET_DISPLAY_DATA EXPORTING MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN
PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO
VERSNO = ZACT02_BOXKOD-VERSNO
CHANGING ZACT02_BOXKOD = ZACT02_BOXKOD
IT_C_DISPLAY = IT_DISPLAY
TABC = TABC.
ENDIF.
ENDIF.
ENDMODULE. " MAX_VER INPUT
*& Module CHK_NOBOXES INPUT
text
MODULE CHK_NOBOXES INPUT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~NOOFBOX_VAL EXPORTING BMSCH = ZACT02_BOXKOD-BMSCH.
ENDMODULE. " CHK_NOBOXES INPUT
*& Module CHK_TOTTIME INPUT
text
MODULE CHK_TOTTIME INPUT.
CALL METHOD O_CONTROL_EVENTS->I_DATA~TOTTIME_VAL EXPORTING VGW01 = ZACT02_BOXKOD-VGW01.
ENDMODULE. " CHK_TOTTIME INPUT
*& Module STATUS_0100 OUTPUT
text
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'INITIAL'.
SET TITLEBAR 'STANDARD_MAIN'.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module EXIT_PROGRAM INPUT
text
MODULE EXIT_PROGRAM INPUT.
LEAVE TO TRANSACTION 'ZAC16'.
ENDMODULE. " EXIT_PROGRAM INPUT -
Schedule a background job for a program using ABAP code.
Hi,
I have to write a program to schedule a background job for another program.
Need your help to understand how we can achieve this functionality.Any example of an abap code would be of great help.
Need it urgently.
Thanks in advance.
Sandeep.Hi Sandeep,
Here is the demo program regarding the BDC For the background job.
report zprprbdc1
no standard page heading line-size 255.
include bdcrecx1.
parameters: dataset(132) lower case.
*** DO NOT CHANGE - the generated data section - DO NOT CHANGE ***
* If it is nessesary to change the data section use the rules:
* 1.) Each definition of a field exists of two lines
* 2.) The first line shows exactly the comment
* '* data element: ' followed with the data element
* which describes the field.
* If you don't have a data element use the
* comment without a data element name
* 3.) The second line shows the fieldname of the
* structure, the fieldname must consist of
* a fieldname and optional the character '_' and
* three numbers and the field length in brackets
* 4.) Each field must be type C.
*** Generated data section with specific formatting - DO NOT CHANGE ***
***data: begin of itab occurs 0 ,
*** matnr(20) type c,
*** mbrsh(30) type c,
*** mtart(30) type c,
*** kzsel(20) type c,
*** maktx(40) type c,
*** meins(5) type c,
*** end of itab.
data: begin of record occurs 0,
* data element: MATNR
matnr_001(018),
* data element: MBRSH
mbrsh_002(001),
* data element: MTART
mtart_003(004),
* data element: XFELD
kzsel_01_004(001),
* data element: MAKTX
maktx_005(040),
* data element: MEINS
meins_006(003),
* data element: MTPOS_MARA
mtpos_mara_007(004),
end of record.
*** End generated data section ***
start-of-selection.
*perform open_dataset using dataset.
perform open_group.
**do.
**read dataset dataset into record.
**if sy-subrc <> 0. exit. endif.
call function 'GUI_UPLOAD'
exporting
filename = 'c:\jitu\bdc\10002.txt'
filetype = 'ASC'
has_field_separator = 'x'
* HEADER_LENGTH = 0
* READ_BY_LINE = 'X'
* DAT_MODE = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* CHECK_BOM = ' '
* VIRUS_SCAN_PROFILE =
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
tables
data_tab = record
* EXCEPTIONS
* FILE_OPEN_ERROR = 1
* FILE_READ_ERROR = 2
* NO_BATCH = 3
* GUI_REFUSE_FILETRANSFER = 4
* INVALID_TYPE = 5
* NO_AUTHORITY = 6
* UNKNOWN_ERROR = 7
* BAD_DATA_FORMAT = 8
* HEADER_NOT_ALLOWED = 9
* SEPARATOR_NOT_ALLOWED = 10
* HEADER_TOO_LONG = 11
* UNKNOWN_DP_ERROR = 12
* ACCESS_DENIED = 13
* DP_OUT_OF_MEMORY = 14
* DISK_FULL = 15
* DP_TIMEOUT = 16
* OTHERS = 17
if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
loop at record .
perform bdc_dynpro using 'SAPLMGMM' '0060'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-MATNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RMMG1-MATNR'
record-matnr_001.
perform bdc_field using 'RMMG1-MBRSH'
record-mbrsh_002.
perform bdc_field using 'RMMG1-MTART'
record-mtart_003.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
record-kzsel_01_004.
perform bdc_dynpro using 'SAPLMGMM' '4004'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'MAKT-MAKTX'
record-maktx_005.
perform bdc_field using 'BDC_CURSOR'
'MARA-MEINS'.
perform bdc_field using 'MARA-MEINS'
record-meins_006.
perform bdc_field using 'MARA-MTPOS_MARA'
record-mtpos_mara_007.
perform bdc_transaction using 'MM01'.
**enddo.
endloop.
perform close_group.
*perform close_dataset using dataset.
&*****************Reward point if helpful************& -
Creation of Program using ABAP Query (SQ01)
Hi All,
I have a program called "AQL4FI==========INVOICE_CHECK=" in my 4.6 server but a similar program doesnot exist in ECC.
From the name, it looks like a program created using SQ01.
Can anyone please help as to how to create the same program in ECC using SQ01 by looking at the program in 4.6?
Please help.
Helpful answers will be fully rewarded.
Thanks a ton.
NabaFirst thing is this is not the way to convert the SAP Query to Report.
First check that how many table in your query they have used.To check this if you go in SQ02 press display button left side you can see the tables.To check the fields selecting from tables check in field groups.
In record processing check are there any conditions are there.
Now wrire a select statement by joing all tables which you found above and in this select statement extract all fields which you found in field group into one internal table .Here you give the selection screen fields as condition fields in select statement.If you found any conditions in record processing event ,Loop that internal table and check the conditions or modifications.
If you need more help let me know.
Pls. reward points for helpful answers
Thanks
Murali Poli -
Reusing Standard Classes for Module pool Programming using Abap Objects
Hi.,
I debugged the ME21n transaction and found a number of classes such as
CL_BASIC_MODEL_VIEW_MM
CL_GENERIC_MODEL_VIEW_MM
CL_GENERIC_VALUE_MODEL_MM
CL_MODEL_CONTAINER_MM
CL_MODEL_CONTROL_VIEW_MM
CL_MODEL_VIEW_MM
CL_TABLE_MODEL_MM
CL_TABLE_MODEL_TREE_VIEW_MM
CL_VALUE_MODEL_MM
CL_VALUE_MODEL_VIEW_MM
CL_BASIC_MODEL_VIEW_MM
CL_COMPOSITE_SCREEN_VIEW_M
CL_CUSTOM_CONTROL_VIEW_MM
CL_EXPAND_BUTTON_VIEW_MM
CL_EXPAND_VIEW_MM
CL_FOREIGN_APPLICATION_VIE
CL_GENERIC_MODEL_VIEW_MM
CL_GRID_VIEW_MM
CL_MODEL_CONTROL_VIEW_MM
CL_MODEL_VIEW_MM
CL_SCREEN_VIEW_MM
CL_SETUPVIEW_BUILDER_MM
CL_SIMPLE_TREE_VIEW_MM
CL_TABLE_MODEL_TREE_VIEW_M
CL_TABLE_VIEW_CONTAINER_MM
CL_TABLE_VIEW_MM
CL_TABSTRIP_VIEW_MM
CL_TC_BUTTON_VIEW_MM
CL_TC_ITEM_VIEW_MM
CL_TOGGLE_VIEW_MM
CL_VALUE_MODEL_VIEW_MM
CL_DEFAULT_CONTROLLER_MM
CL_CONTROLLER_MM
CL_ATP_CONTROLLER_MM
CL_DRAG_DROP_CONTROLLER_MM ..
How we can reuse these classes to build a custom module pool program which supports MVC architecture as used in enjoy SAP transactions .I am very much confused from where to start .
Guide me on this.I want to create a simple module pool program with Subscreens, Table Controls and Tabstrips ..
Regards.,
S.SivakumarHave you got any solution on this.
because i want to use CL_GRID_VIEW_MM->handle_on_data_changed for one of my development related to ME51N. -
Macro format to use ABAP Program
Hi,
I need to run an abap program based on certain condition and that is if the user selection is at particular level say at "Customer" level then that abap program should run else don't do anything and exit.
If "DetLevel" = customer then
ABAP program
else
exit
end if.
I am not able to put this in correct way it seems because if I am not at correct level then also the abap program is run.
Please help me to understand the way to achieve this.
Thanks,
PankajHi Awa,
It's regarding your questions..
Yes you can make it ..
You can create your data source program in your source system such as R/3, CRM, etc.
There is template function that can be used for your program:
RSAX_BIW_GET_DATA_SIMPLE.
You can use that template, and alter the code as your business requirement.
There are also blog, and tutorial as your references:
Generic Extraction via Function Module
http://help.sap.com/saphelp_nw04/helpdata/en/3f/548c9ec754ee4d90188a4f108e0121/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/86/1c8c3e94243446e10000000a114084/frameset.htm
Hopefully it can help you a lot.
Regards,
Niel. -
Use abap report program to print bar code instead of smartforms
Do anyone know how to use abap report program to print bar code?
Hi Celina,
http://searchsap.techtarget.com/tip/1,289483,sid21_gci839063,00.html
I hope this will help, also it depends on the barcode type like ARTNR-code 128...
Regards,
Sudhi -
How to upload data into IT0000 using ABAP-HR program
Hello,
I'm required to upload data into multiple infotypes [IT000, 0001, 0002, etc] using single input text file. Can anyone able to guide me, how to upload data into IT0000 using ABAP program ?
Thanks in advance.
Regards
Prabhakar.
Message was edited by:
Prabhakara MuthyalExample code for HR_MAINTAIN_MASTERDATA to COPY IT0002
DATA: INT_0002_FINAL TYPE STANDARD TABLE OF PA0002 WITH HEADER LINE.
DATA: VALUES LIKE PPROP OCCURS 10 WITH HEADER LINE,
RETURN LIKE BAPIRETURN1,.
LOOP AT INT_0002_FINAL.
VALUES-INFTY = '0002'.
VALUES-FNAME = 'P0002-PERNR'.
VALUES-FVAL = INT_0002_FINAL-PERNR.
APPEND VALUES.
VALUES-INFTY = '0002'.
VALUES-FNAME = 'P0002-BEGDA'.
VALUES-FVAL = INT_0002_FINAL-BEGDA.
APPEND VALUES.
VALUES-INFTY = '0002'.
VALUES-FNAME = 'P0002-ENDDA'.
VALUES-FVAL = INT_0002_FINAL-ENDDA.
APPEND VALUES.
VALUES-INFTY = '0002'.
VALUES-FNAME = 'P0002-nachn'.
VALUES-FVAL = INT_0002_FINAL-NACHN.
APPEND VALUES.
VALUES-INFTY = '0002'.
VALUES-FNAME = 'P0002-gblnd'.
VALUES-FVAL = INT_0002_FINAL-GBLND.
APPEND VALUES.
VALUES-INFTY = '0002'.
VALUES-FNAME = 'P0002-vorna'.
VALUES-FVAL = INT_0002_FINAL-VORNA.
APPEND VALUES.
VALUES-INFTY = '0002'.
VALUES-FNAME = 'P0002-rufnm'.
VALUES-FVAL = INT_0002_FINAL-RUFNM.
APPEND VALUES.
VALUES-INFTY = '0002'.
VALUES-FNAME = 'P0002-name2'.
VALUES-FVAL = INT_0002_FINAL-NAME2.
APPEND VALUES.
VALUES-INFTY = '0002'.
VALUES-FNAME = 'P0002-inits'.
VALUES-FVAL = INT_0002_FINAL-INITS.
APPEND VALUES.
VALUES-INFTY = '0002'.
VALUES-FNAME = 'P0002-famst'.
VALUES-FVAL = INT_0002_FINAL-FAMST.
APPEND VALUES.
VALUES-INFTY = '0002'.
VALUES-FNAME = 'P0002-gbdat'.
VALUES-FVAL = INT_0002_FINAL-GBDAT.
APPEND VALUES.
VALUES-INFTY = '0002'.
VALUES-FNAME = 'P0002-sprsl'.
VALUES-FVAL = INT_0002_FINAL-SPRSL.
APPEND VALUES.
VALUES-INFTY = '0002'.
VALUES-FNAME = 'P0002-anzkd'.
VALUES-FVAL = INT_0002_FINAL-ANZKD.
APPEND VALUES.
VALUES-INFTY = '0002'.
VALUES-FNAME = 'P0002-natio'.
VALUES-FVAL = INT_0002_FINAL-NATIO.
APPEND VALUES.
* maintain master data
CALL FUNCTION 'HR_MAINTAIN_MASTERDATA'
EXPORTING
PERNR = INT_0002_FINAL-PERNR
ACTIO = 'COP'
BEGDA = INT_0002_FINAL-BEGDA
* ENDDA = INT_0002_FINAL-ENDDA
SUBTY = SPACE
NO_ENQUEUE = SPACE
DIALOG_MODE = '0'
TCLAS = 'A'
IMPORTING
RETURN1 = RETURN
TABLES
PROPOSED_VALUES = VALUES
* MODIFIED_KEYS =
EXCEPTIONS
OTHERS = 1.
IF RETURN IS INITIAL.
WRITE:/' Done....'.
ELSE.
WRITE:/ RETURN-ID, RETURN-TYPE, RETURN-NUMBER, RETURN-MESSAGE_V1, RETURN-MESSAGE_V2, RETURN-MESSAGE_V3, RETURN-MESSAGE_V4.
ENDIF.
CLEAR VALUES.
REFRESH VALUES.
ENDLOOP. -
In ecatt - how to check at database level using ABAP
Hi,
How to check at database level using ABAP in Ecatt tool.
say,for example I want to check a particular sales order is invoiced or not ,at the database level and if it is invoiced I have stop proceeding to invoicing of that sales order number.
Could anybody suggest on this with an example?
thanks.Hi,
you can use the command GETTAB to access single db records.
Full specified or partitial specified keys can be use at GETTAB. It will return always only one record, also if a couple could match your selection.
For more advanced scenarios you can also use eCATTs Inline ABAP. In a block between the commands ABAP. ENDABAP. you can code ABAP statements, e.g. SELECT ... INTO TABLE ...
eCATT script parameters of type 'V' defined in that script using ABAP/ENDABAP will be transfered into the ABAP block and back to script after ABAP perform.
Best regards
Jens -
How to Raise Event in BW using ABAP program
Hi BW Experts,
Can anyone tell how to raise event in BW using a ABAP program.
Program should ask for the event to be raised and destination server.
Edited by: Arun Purohit on May 14, 2008 11:04 AMHi Arun,
By Using BP_EVENT_RAISE function module you can raise an event.Create an ABAP program and call the function module BP_EVENT_RAISE and create a avariant to specify the event to be raised. Schedule this ABAP code. Go to the start process type and set the schedule to "after event" and mention the event name that you created. Also, I think now you can mention the time as well and you can also schedule for periodic scheduling.
T Code : SM62 --> To Create an Event.
T Code : SE38 --> To Create an ABAP Program
Use Function Module : BP_EVENT_RAISE to raise an event.
Related links:
http://help.sap.com/saphelp_sem40bw/helpdata/EN/86/6ff03b166c8d66e10000000a11402f/frameset.htm
http://help.sap.com/saphelp_sem40bw/helpdata/EN/86/6ff03b166c8d66e10000000a11402f/frameset.htm
http://help.sap.com/saphelp_sem40bw/helpdata/EN/86/6ff03b166c8d66e10000000a11402f/frameset.htm
http://help.sap.com/saphelp_sem40bw/helpdata/EN/86/6ff03b166c8d66e10000000a11402f/frameset
Hope this helps
Regards
CSM Reddy -
Screen Programming(Module Pool ) using Abap Objects
Hi gurus.,
I need to create a module pool program with tabstrips and tablecontrols using Abap objects...plz guide me how i can achieve this... i am very much confused.. i dont know how and where to start .. plz send me documents and sample codes related to this topic..Also hoe i can implement f4 help in screen fields..
Regards.,
S.SivakumarHi Sivakumar,
Go through the following links:
[url]http://www.savefile.com/download/156691?PHPSESSID=c49d6bed6630d830f3270f7eab51e547 [url]
[url]http://www.sapdb.info/category/sap-ebooks[url]
[url]http://sap.niraj.tripod.com/id25.html[url]
[url]http://abaplovers.blogspot.com/2008/03/sap-abap-tutorial-module-pool_17.html[url]
Thank you,
Prasad G.V.K
Edited by: Craig Cmehil on Jul 1, 2008 9:48 PM -
Is it possible to reset password for any user using abap program
Hi friends,
Is it possible to reset password for any user using abap program by specifying client number and user id. in selection screen.
if any code for that to reset password please mail me.
Thanks & Regards,
YogeshHello Yogesh,
Yes you can reset the password for any body using ABAP Code. But for that you really don't need any client number.
If this process is on regular basis, then recommended is to use BAPI for changing the user details Otherwise BDC also works fine.
=> Function Module - BAPI_USER_CHANGE
Call this in the program for resetting the password.
=> CALL TRANSACTION 'SU01' USING InternalTable
This will be executed in the BDC of SU01 transaction recording. Use the Password Change button in the application toolbar of transaction while recording.
Hope this helps.
PS If the answer solves your query, plz close the thread by marking it solved and rewarding each reply.
Regards -
Synchronizing Two Custom Z Tables Using Abap Program
Hi,
My requirement is Synchronizing two custom z tables using abap program me.
I have vendors in two tables, i have to select the common vendors from first which are existing in second table also.
In first table each vendor can have more than one supplier types in one field only. In second table these supplier types are divided into
different fields.
My requirement is I have to check supplier types in first table and i have to pass X to corresponding supplier types in second table vendor.
I have to pass X value for each depending in Second table depending upon supplier type in first table.
. How to do it can any one suggest with code.
Thanks in Advance,
Vivek
<subject edited by moderator>
Message was edited by: Manish KumarHi,
Imho, you need to get (meaning, extract into separate fields) the different supplier types from Table1 first. Your key for Table1 is the vendor no, which is also the key in Table2 (or the key for Table2 is Vendor no & Type).
For better performance, better select multiple/all required entries from Table1 instead of doing a select endselect.
Depending on the format of the vendortypes in Table1, put them in a new itab (for our purpose named Table1New where vendor no & type are the only 2 fields. For example, if the type length is fixed to 2 chars, or divided by space,... use your coding accordingly.
Next step is to select all vendor no's in Table2 which you have selected in Table1. If in Table2, the vendor no is the only key (and the all vendor types are filled in a single record), then loop check the vendor types from Table1New against the types in Table2.
If the key of Table2 is vendor no & vendor type, then do a read table for the key.
The logic in pseudo-code:
Select from Table1 into table. If you'd like to limit the selection size, add package size statement.
extract the vendor types in to itab Table1New.
Select the vendor & types from Table2 by using the for all entries option (better performance).
loop at Table1New
check in Table2:
if the unique key is vendor no: check all fields for the vendor type from Table1New
if the unique key combo is vendor no & type: check by using a read table.
If not found => add entry to Table2
endloop.
endselect Table1 (when using package size)
I guess the most difficult step is to extract the types from Table1 into separate fields, all the rest seems straight forward. Please keep in mind the itab type definitions for a better performance.
Good luck!
Best regards,
Zhou -
Documentation on ABAP Objects with examples & programs (using se24)
Hi Guru's,
I'm new to abap objects. i need to learn this. where can i get material for this with ex. programs (using se24) also.Hi,
Check this link-
http://help.sap.com/saphelp_nw70/helpdata/en/ce/b518b6513611d194a50000e8353423/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/ce/b518b6513611d194a50000e8353423/content.htm
SE24-
http://help.sap.com/saphelp_nw04/Helpdata/EN/ca/c035baa6c611d1b4790000e8a52bed/frameset.htm
Maybe you are looking for
-
Hi, I installed BI Publisher Desktop 11.1.1.5 on a Windows 7 PC with Office 2007. After installing it I encountered a series of issues, including the "macro not found" one, the "'Compile error in hidden module" one and also when clicking on some icon
-
This is really a SQL question. How to get a record for the max value
I have a table ZTX with the following fields and values VBELN POSNR SEQNR DESCRIPTION 3001 10 001 Desc1 3001 10 002 Desc2 3001 10 003 Desc3 I want to create a query so that I can join tables VBAK-VBELN, a
-
In Case of Emergency (ICE) access
I have some ICE, In Case of Emergency numbers in my iPhone for the occasion where I might be incapacitated and first responders need to contact one of them. How can first responders access these numbers on my phone if it is locked with a passcode.
-
Indesign CC, DPS and "empty folio" message
I get an empty folio error message from folio builder using ID 9.2 v 26. I'm opening it from an active Indesign folio. So after reading some forum questions, I'm thinking my problem might be in one or none of these issues: "Updating" folio so it read
-
Determine in which page an iView is embedded at runtime
Hi, is it possible for an iView to find out in which page it is activated at runtime. I would like my iView to show different information for different pages where it is embedded. Regards Edmund