Datum problem
hi experts !
there is a program for displaying domestic sales figures as per
customer/document type/Invoice wise.
input data for report is
Company code
DOCUMENT TYPE
START DATE & END DATE
FINANCIAL YEAR.
problem is in date when i entered date 01.05.07 to 04.05.07 or 02.05.07 to 05.05.07 or 02.05.07 to 06.05.07 its taking data for all 3 line items in invoice and showing correct data. but if date is 01.05.07 to 05.05.07 or 01.05.07 to 06.05.07 its taking data for two line items leaving 1st line item in invoice . Date for these invoice creation is 02.05.07, its showing correct data for it . but not showing correct data in some date intervals(i.e its taking data for two line items leaving 1st line item in invoice ) . for other invoices its giving correct data except in this specific doc.no. otherwise it is correct . can anybody help me why its showing incorrect data for only one specific doc.no.
code for date is
i have checked fb03 and its showing correct 3 line items in invoice
FORM FORM_COLLECT_BKPF.
SELECT BUKRS BELNR GJAHR BLDAT BUDAT BLART XBLNR BKTXT USNAM CPUDT
CPUTM FROM BKPF
INTO CORRESPONDING FIELDS OF TABLE IT_BKPF
WHERE BUKRS = PR_BUKRS
AND GJAHR = PR_GJAHR
AND BLART IN SO_BLART
AND BUDAT IN SO_BUDAT
AND XREVERSAL = ''
AND BSTAT = ''.
IF IT_BKPF[] IS INIT
hi ranjna,
if I understand right this is one document with three line items. In this case the problem is not with the BKPF selection, but with the line item selections. Pls. check your code or copy it here and people can have a look.
hope this helps
ec
Similar Messages
-
hello friends,
i have a scenario, where , when the entered period as parameter is
YYYYMM the last date for that particular month MM
should be calculated ( i dont know how), and should be attached to this period
like
YYYYMMDD
how do i calculate this DD (ie. last day of the moth) for the
given month and year.
like yyyymm is 200404 then i should output 20040431
if 200510 then output sould be 20051031
if 200302 then output should be 20030228.
can some one help.
thank you.Try this.
report zrich_0001.
data: yyyymm(6) type c value '200704'.
data: datum type sy-datum.
data: last_datum type sy-datum.
datum = yyyymm.
datum+6(2) = '01'.
call function 'LAST_DAY_OF_MONTHS'
exporting
day_in = datum
importing
last_day_of_month = last_datum.
write:/ last_datum.
Regards,
RIch Heilman -
hi experts !
there is a program for displaying domestic sales figures as per
customer/document type/Invoice wise.
input data for report is
Company code
DOCUMENT TYPE
START DATE & END DATE
FINANCIAL YEAR.
problem is in date when i entered date 01.05.07 to 04.05.07 or 02.05.07 to 05.05.07 or 02.05.07 to 06.05.07 its taking data for all 3 line items in invoice and showing correct data. but if date is 01.05.07 to 05.05.07 or 01.05.07 to 06.05.07 its taking data for two line items leaving 1st line item in invoice . Date for these invoice creation is 02.05.07, its showing correct data for it . but not showing correct data in some date intervals(i.e its taking data for two line items leaving 1st line item in invoice ) . for other invoices its giving correct data except in this specific doc.no. otherwise it is correct . can anybody help me why its showing incorrect data for only one specific doc.no.
code for date is
i have checked fb03 and its showing correct 3 line items in invoice
FORM FORM_COLLECT_BKPF.
SELECT BUKRS BELNR GJAHR BLDAT BUDAT BLART XBLNR BKTXT USNAM CPUDT
CPUTM FROM BKPF
INTO CORRESPONDING FIELDS OF TABLE IT_BKPF
WHERE BUKRS = PR_BUKRS
AND GJAHR = PR_GJAHR
AND BLART IN SO_BLART
AND BUDAT IN SO_BUDAT
AND XREVERSAL = ''
AND BSTAT = ''.
FORM FORM_COLLECT_BSEG .
SELECT BUKRS BELNR GJAHR HKONT DMBTR KUNNR LIFNR BSCHL KOART MENGE
MWSKZ ZUONR MWSTS PRCTR FROM BSEG INTO CORRESPONDING FIELDS OF TABLE
IT_BSEG
FOR ALL ENTRIES IN IT_BKPF
WHERE
BELNR = IT_BKPF-BELNR AND
BUKRS = PR_BUKRS AND
GJAHR = PR_GJAHR.
ENDFORM.ranjana,
Change the SQL to this -
FORM FORM_COLLECT_BSEG .
SELECT BUKRS BELNR GJAHR <b>BUZEI</b> HKONT DMBTR KUNNR LIFNR BSCHL KOART MENGE
MWSKZ ZUONR MWSTS PRCTR FROM BSEG INTO CORRESPONDING FIELDS OF TABLE
IT_BSEG
FOR ALL ENTRIES IN IT_BKPF
WHERE
BELNR = IT_BKPF-BELNR AND
BUKRS = PR_BUKRS AND
GJAHR = PR_GJAHR.
ENDFORM.
If you do this - you will get all the line items.
Make sure - You have added this BUZEI to ur internal table IT_BSEG also.
Normally - FOR ALL ENTRIES fetches unique entries based on the Fields you are trying to SELECT. As you missed the BUZEI , it was fetching the unique sets based on the fields you have selected
Hope it solves the problem.
Cheers.
SKC.
Message was edited by:
SKC -
Problems creating background job for program (job open, submit and close)
Hi gurus,
im trying to start a background job using the FM BP_START_DATE_EDITOR to show the start date to the job or if it's imediate. this FM it's working fine, after call it im opening a job, submiting it and call the job close FM and the job close FM creates me the job.
The problem it's when i go to the sm37 to see the job status the job has been canceled, and the job log says that i have to give a start date to the job.
What i dont understand it's either the job is imediate or i choose a date to start the job always gives me this error...
Below goes my code,
any ideas will be rewarded
CLEAR: stdt_modify_type, stdt_output.
CALL FUNCTION 'BP_START_DATE_EDITOR'
EXPORTING
stdt_dialog = 'Y'
stdt_input = stdt_input
stdt_opcode = 14
IMPORTING
stdt_modify_type = stdt_modify_type
stdt_output = stdt_output
EXCEPTIONS
fcal_id_not_defined = 1
incomplete_last_startdate = 2
incomplete_startdate = 3
invalid_dialog_type = 4
invalid_eventid = 5
invalid_opcode = 6
invalid_opmode_name = 7
invalid_periodbehaviour = 8
invalid_predecessor_jobname = 9
last_startdate_in_the_past = 10
no_period_data_given = 11
no_startdate_given = 12
period_and_predjob_no_way = 13
period_too_small_for_limit = 14
predecessor_jobname_not_unique = 15
startdate_interval_too_large = 16
startdate_in_the_past = 17
startdate_is_a_holiday = 18
startdate_out_of_fcal_range = 19
stdt_before_holiday_in_past = 20
unknown_fcal_error_occured = 21
no_workday_nr_given = 22
invalid_workday_countdir = 23
invalid_workday_nr = 24
notbefore_stdt_missing = 25
workday_starttime_missing = 26
no_eventid_given = 27
OTHERS = 28.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
MOVE 'X' TO gv_flag.
ENDIF.
DATA jobname LIKE tbtcjob-jobname.
DATA jobcount LIKE tbtcjob-jobcount.
DATA job_release LIKE btch0000-char1.
DATA job_imediate TYPE c.
CLEAR: jobname, jobcount, job_release.
CONCATENATE 'MAPAEXEC' sy-uname sy-datum
INTO jobname SEPARATED BY space.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = jobname
IMPORTING
jobcount = jobcount
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE i003(zmapas).
EXIT.
ENDIF.
SUBMIT z_mapa_execucao_orcamental
VIA JOB jobname NUMBER jobcount
WITH ano EQ ano
WITH so_perio IN so_perio
WITH so_date IN so_date
WITH so_org EQ so_org
WITH so_num IN so_num
AND RETURN.
IF stdt_output-startdttyp EQ 'I'.
CLEAR job_imediate.
job_imediate = 'X'.
ENDIF.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
calendar_id = stdt_output-calendarid
event_id = stdt_output-eventid
event_param = stdt_output-eventparm
event_periodic = stdt_output-periodic "?
jobcount = jobcount
jobname = jobname
laststrtdt = stdt_output-laststrtdt
laststrttm = stdt_output-laststrttm
prddays = stdt_output-prddays "??
prdhours = stdt_output-prdhours "?
prdmins = stdt_output-prdmins "??
prdmonths = stdt_output-prdmonths
prdweeks = stdt_output-prdweeks "?
predjob_checkstat = stdt_output-checkstat
pred_jobcount = stdt_output-predjobcnt
pred_jobname = stdt_output-predjob
sdlstrtdt = stdt_output-sdlstrtdt
sdlstrttm = stdt_output-sdlstrttm
strtimmed = job_imediate
targetsystem = stdt_output-instname
start_on_workday_not_before = stdt_output-notbefore
start_on_workday_nr = stdt_output-wdayno
workday_count_direction = stdt_output-wdaycdir
IMPORTING
job_was_released = job_release
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
OTHERS = 8.
IF sy-subrc <> 0.
MESSAGE i003(zmapas).
EXIT.
ELSE.
MESSAGE i004(zmapas) WITH jobname.
ENDIF.
Thanks in advance,
Best Regards
João MartinsHello João.
In debug mode, check the value of variables you passed to parameters sdlstrtdt and sdlstrttm.
As aditional info, I usually achieve your goal without FM BP_START_DATE_EDITOR.
Check this code:
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = w_jobname
IMPORTING
jobcount = w_jobcount
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
CHECK sy-subrc = 0.
CLEAR seltab_wa.
MOVE: t_jobs-param TO seltab_wa-selname,
t_processar-line+34 TO seltab_wa-low.
APPEND seltab_wa TO seltab.
seltab_wa-selname = 'P_LOJA'.
seltab_wa-low = t_processar-ficheiro+7(4).
APPEND seltab_wa TO seltab.
*** Submete o programa para o JOB
SUBMIT (t_jobs-repid)
WITH SELECTION-TABLE seltab
USER sy-uname
VIA JOB w_jobname NUMBER w_jobcount
AND RETURN.
*** Encerra o JOB
l_hora = sy-uzeit.
ADD 60 TO l_hora.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = w_jobcount
jobname = w_jobname
sdlstrtdt = sy-datum
sdlstrttm = l_hora
targetserver = w_servidor
IMPORTING
job_was_released = l_liberado
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
OTHERS = 8.
Regards.
Valter Oliveira. -
MULTIPLE ITEM PROBLEM IN VL31N BDC
hI FRIENDS ,
I AM POSTING A BDC OF TRANSACTION VL31N ,ie FOR SCHEDULE AGREEMENT INBOUND DELIVERY.I CREATE A FUNCTIONAL MODULE OF THE SAME AND CALL IT FROM AN ASP PAGE,IN THAT THERE IS PO NUMBER 5500000986 WHICH HAS TWO ITEMES 62 AND 95 RESPECTIVLY OF SAME MATARIAL NUMBER R010230123041002 AND DIE NUMBER 2304P,NOW THE PROBLEM IS THIS BDC IS WORKING WHEN THERE IS ONLY ONE ITEM BUT GIVES AN ERROR "CANT CREAT INBOUND DELIVERY FOR PO NO ...' WNEN IT HAS MULTIPLE ITEM.WHAT SHOULD I DO ? I ALSO USED LOOP BUT IT ALSO DOSENT WORK AS IT WILL ADD ALL OPEN QTY OF PO 986 AND UPDATE AGAINST ITEM NO 95.
CODE IS AS FOLLOWS:.........
FUNCTION y_synie_bdcinbdly.
""Local interface:
*" IMPORTING
*" VALUE(CTU) LIKE APQI-PUTACTIVE DEFAULT 'X'
*" VALUE(MODE) LIKE APQI-PUTACTIVE DEFAULT 'N'
*" VALUE(UPDATE) LIKE APQI-PUTACTIVE DEFAULT 'L'
*" VALUE(GROUP) LIKE APQI-GROUPID OPTIONAL
*" VALUE(USER) LIKE APQI-USERID OPTIONAL
*" VALUE(KEEP) LIKE APQI-QERASE OPTIONAL
*" VALUE(HOLDDATE) LIKE APQI-STARTDATE OPTIONAL
*" VALUE(NODATA) LIKE APQI-PUTACTIVE DEFAULT '/'
*" VALUE(EXTNID) LIKE MAKT-MAKTG
*" VALUE(VENDORNO) LIKE LFA1-LIFNR
*" VALUE(PONUMBER) LIKE EKKO-EBELN
*" VALUE(ITEMNUMBER) LIKE LIPS-VGPOS
*" VALUE(MATERIAL) LIKE MAKT-MAKTG
*" VALUE(DLYQTY) LIKE LIPS-LFIMG
*" VALUE(BTCHNO) LIKE LIPS-CHARG
*" VALUE(POSLR) LIKE EKES-EBELP OPTIONAL
*" EXPORTING
*" VALUE(SUBRC) LIKE SYST-SUBRC
*" VALUE(INDELYNO) LIKE SY-MSGV2
*" VALUE(MSG1) LIKE SY-MSGV1
*" VALUE(MSG2) LIKE SY-MSGV2
*" VALUE(MSG3) LIKE SY-MSGV3
*" VALUE(MSG4) LIKE SY-MSGV4
*" TABLES
*" MESSTAB STRUCTURE BDCMSGCOLL
*" ERRTAB STRUCTURE YSYNERRMSGS
*" INDLYTAB STRUCTURE YSYN_QTYTAB
Updated by ANAND SYNISE 19.1.2007
DATA: BEGIN OF bdctab OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA: END OF bdctab.
DATA: datenow(10) TYPE c,
fldvar(30) TYPE c,
fldno TYPE i,
flditoc(6) TYPE c,
qty(13) TYPE c.
DATA maxposnr LIKE lips-posnr.
DATA testposnr TYPE posnr.
DATA itemnoint TYPE i.
CONCATENATE sy-datum6(2) '.' sy-datum4(2) '.' sy-datum+0(4) INTO datenow.
CLEAR bdctab.
REFRESH bdctab.
PERFORM open_group USING group user keep holddate ctu.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '4007'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'RV50A-VERUR_LA'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '/00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-LIFNR'.
bdctab-fval = vendorno.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LV50C-BSTNR'.
bdctab-fval = ponumber.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-VERUR_LA'.
bdctab-fval = extnid.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=MKAL_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIKP-BLDAT'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=POPO_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-POSNR(01)'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '0111'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'RV50A-PO_MATNR'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = 'WEIT'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-PO_MATNR'.
bdctab-fval = material.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=POLO_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-POSNR(01)'.
APPEND bdctab.
*ADDED BY ANAND ON 22-01-2007
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = ITEMNUMBER . "ITEMNUMBER = LIPS-VGPOS
APPEND bdctab.
************ENDED***********************
ADDED BY MILIND 19.01.2007
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = poslr .
APPEND bdctab.
* ENDED * *
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LIPS_SELKZ(01)'.
bdctab-fval = ''.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '/00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-CHARG(01)'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
QTY = INDLYTAB-DLYQTY.
qty = dlyqty.
bdctab-fnam = 'LIPSD-G_LFIMG(01)'.
bdctab-fval = QTY.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIPS-CHARG(01)'.
* BDCTAB-FVAL = INDLYTAB-BTCHNO.
bdctab-fval = btchno.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=SICH_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-MATNR(02)'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CALL TRANSACTION 'VL31N' USING bdctab MODE 'N' MESSAGES INTO messtab.
subrc = sy-subrc.
PERFORM close_group USING ctu.
CLEAR bdctab.
REFRESH bdctab.
IF sy-subrc EQ 0.
indelyno = sy-msgv2.
ENDIF.
LOOP AT messtab.
MOVE: messtab-msgid TO errtab-msgid,
messtab-msgnr TO errtab-msgnr,
messtab-msgv1 TO errtab-msg1,
messtab-msgv2 TO errtab-msg2,
messtab-msgv3 TO errtab-msg3,
messtab-msgv4 TO errtab-msg4.
APPEND ERRtab.
ENDLOOP.
LOOP AT errtab.
SELECT SINGLE text FROM t100
INTO errtab-errmsg
WHERE msgnr EQ errtab-msgnr AND arbgb EQ errtab-msgid
AND sprsl EQ sy-langu.
MODIFY errtab.
ENDLOOP.
ENDFUNCTION.Hi,
Check this code:
REPORT Z_CUSTOMER_UPLOAD .
D A T A D E C L A R A T I O N S *
DATA:BEGIN OF IT_CUSTOMER OCCURS 0,
KUNNR LIKE MV10A-KUNNR,
VKORG LIKE MV10A-VKORG,
VTWEG LIKE MV10A-VTWEG,
MATNR LIKE MV10A-MATNR,
KDMAT LIKE MV10A-KDMAT,
MEGRU LIKE MV10A-MEGRU,
SELKZ TYPE C value 'X',
LPRIO LIKE MV10A-LPRIO,
ANTLF LIKE MV10A-ANTLF,
END OF IT_CUSTOMER.
DATA:BEGIN OF IT_success OCCURS 0,
KUNNR LIKE MV10A-KUNNR,
VKORG LIKE MV10A-VKORG,
VTWEG LIKE MV10A-VTWEG,
MATNR LIKE MV10A-MATNR,
KDMAT LIKE MV10A-KDMAT,
MEGRU LIKE MV10A-MEGRU,
SELKZ TYPE C value 'X',
LPRIO LIKE MV10A-LPRIO,
ANTLF LIKE MV10A-ANTLF,
END OF IT_success.
DATA:BEGIN OF IT_error OCCURS 0,
KUNNR LIKE MV10A-KUNNR,
VKORG LIKE MV10A-VKORG,
VTWEG LIKE MV10A-VTWEG,
MATNR LIKE MV10A-MATNR,
KDMAT LIKE MV10A-KDMAT,
MEGRU LIKE MV10A-MEGRU,
SELKZ TYPE C value 'X',
LPRIO LIKE MV10A-LPRIO,
ANTLF LIKE MV10A-ANTLF,
END OF IT_error.
DATA: L_INDEX TYPE SY-TABIX.
DATA:IT_BDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
IT_DATA TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
ERROR MESSAGE TABLE
DATA:IT_MESSAGES LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA : C_S TYPE C VALUE 'S',
C_E TYPE C VALUE 'E'.
*DATA: IT_SUCCESS LIKE IT_CUSTOMER OCCURS 0,
IT_ERROR LIKE IT_CUSTOMER OCCURS 0.
DATA : V_RECTOT TYPE I,
V_RECERR TYPE I,
V_RECSUC TYPE I.
S E L E C T I O N - S C R E E N *
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETER : P_FILE LIKE RLGRAP-FILENAME .
SELECTION-SCREEN : END OF BLOCK B1.
A T S E L E C T I O N - S C R E E N *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
to get F4 help for p_file
PERFORM F4_FILENAME USING P_FILE.
S T A R T O F S E L E C T I O N *
START-OF-SELECTION.
Uploading data from flat file into it_tab
PERFORM BDC_UPLOAD USING P_FILE.
PERFORM PROCESS_DATA.
PERFORM POPULATE_BDC.
E N D O F S E L E C T I O N *
*END-OF-SELECTION.
PERFORM DISPLAY_REPORT.
*& Form F4_FILENAME
text
-->P_P_FILE text
FORM F4_FILENAME USING P_P_FILE.
DATA:L_FILE TYPE IBIPPARMS-PATH.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = L_FILE .
P_P_FILE = L_FILE.
ENDFORM. " F4_FILENAME
*& Form BDC_UPLOAD
text
-->P_P_FILE text
FORM BDC_UPLOAD USING P_P_FILE.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_P_FILE
I_BEGIN_COL = 1
I_BEGIN_ROW = 1
I_END_COL = 8
I_END_ROW = 1000
TABLES
INTERN = IT_DATA
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 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.
ENDIF.
ENDFORM. " BDC_UPLOAD
*& Form PROCESS_DATA
text
--> p1 text
<-- p2 text
FORM PROCESS_DATA.
SORT IT_DATA BY ROW COL.
LOOP AT IT_DATA.
CASE IT_DATA-COL.
WHEN 1.
IT_CUSTOMER-KUNNR = IT_DATA-VALUE.
WHEN 2.
IT_CUSTOMER-VKORG = IT_DATA-VALUE.
WHEN 3.
IT_CUSTOMER-VTWEG = IT_DATA-VALUE.
WHEN 4.
IT_CUSTOMER-MATNR = IT_DATA-VALUE.
WHEN 5.
IT_CUSTOMER-KDMAT = IT_DATA-VALUE.
WHEN 6.
IT_CUSTOMER-MEGRU = IT_DATA-VALUE.
WHEN 7.
IT_CUSTOMER-LPRIO = IT_DATA-VALUE.
WHEN 8.
IT_CUSTOMER-ANTLF = IT_DATA-VALUE.
APPEND IT_CUSTOMER.
ENDCASE.
ENDLOOP.
ENDFORM. " PROCESS_DATA
*& Form POPULATE_BDC
text
--> p1 text
<-- p2 text
FORM POPULATE_BDC.
DATA:L_COUNTER TYPE N,
L_STRING TYPE STRING.
LOOP AT IT_CUSTOMER.
AT NEW KUNNR.
CLEAR L_COUNTER.
L_INDEX = SY-TABIX.
READ TABLE IT_CUSTOMER INDEX L_INDEX.
perform bdc_dynpro using 'SAPMV10A' '0100'.
perform bdc_field using 'MV10A-KUNNR'
IT_CUSTOMER-KUNNR.
perform bdc_field using 'MV10A-VKORG'
IT_CUSTOMER-VKORG.
perform bdc_field using 'MV10A-VTWEG'
IT_CUSTOMER-VTWEG.
perform bdc_field using 'BDC_OKCODE'
'/00'.
ENDAT.
L_COUNTER = L_COUNTER + 1.
CLEAR L_STRING.
perform bdc_dynpro using 'SAPMV10A' '0200'.
CONCATENATE 'MV10A-MATNR(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-MATNR.
CONCATENATE 'MV10A-KDMAT(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-KDMAT.
CONCATENATE 'MV10A-MEGRU(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-MEGRU.
perform bdc_field using 'BDC_OKCODE'
'/00'.
*-- For Page down in Call Transaction Mode
IF L_COUNTER = 14.
CLEAR L_COUNTER.
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=P+'.
ENDIF.
perform bdc_dynpro using 'SAPMV10A' '0200'.
CONCATENATE 'MV10A-SELKZ(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-SELKZ.
perform bdc_field using 'BDC_OKCODE'
'=SELE'.
perform bdc_dynpro using 'SAPMV10A' '0300'.
perform bdc_field using 'MV10A-KDMAT'
IT_CUSTOMER-KDMAT.
perform bdc_field using 'MV10A-LPRIO'
IT_CUSTOMER-LPRIO.
perform bdc_field using 'MV10A-ANTLF'
IT_CUSTOMER-ANTLF.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/EBACK'.
at end of kunnr.
READ TABLE IT_CUSTOMER INDEX L_INDEX.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
CALL TRANSACTION 'VD51' USING IT_BDC MODE 'A' UPDATE 'S'
MESSAGES INTO IT_MESSAGES.
CLEAR IT_BDC.
REFRESH IT_BDC.
ENDAT.
IF NOT IT_MESSAGES[] IS INITIAL.
PERFORM FORMAT_MESSAGE.
ENDIF.
ENDLOOP.
ENDFORM. " POPULATE_BDC
*& Form bdc_dynpro
text
-->P_0273 text
-->P_0274 text
FORM bdc_dynpro USING VALUE(P_0273)
VALUE(P_0274).
IT_BDC-PROGRAM = P_0273.
IT_BDC-DYNPRO = P_0274.
IT_BDC-DYNBEGIN = 'X'.
APPEND IT_BDC.
CLEAR IT_BDC.
ENDFORM. " bdc_dynpro
*& Form bdc_field
text
-->P_0278 text
-->P_RECORD_KUNNR_001 text
FORM bdc_field USING VALUE(P_0278)
VALUE(P_0279).
IT_BDC-FNAM = P_0278.
IT_BDC-FVAL = P_0279.
APPEND IT_BDC.
CLEAR IT_BDC.
ENDFORM. " bdc_field
*& Form FORMAT_MESSAGE
text
--> p1 text
<-- p2 text
FORM FORMAT_MESSAGE.
DATA: L_MSG(100).
LOOP AT IT_MESSAGES.
READ TABLE IT_CUSTOMER INDEX L_INDEX.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = IT_MESSAGES-MSGID
LANG = SY-LANGU
NO = IT_MESSAGES-MSGNR
V1 = IT_MESSAGES-MSGV1
V2 = IT_MESSAGES-MSGV2
V3 = IT_MESSAGES-MSGV3
V4 = IT_MESSAGES-MSGV4
IMPORTING
MSG = L_MSG
EXCEPTIONS
NOT_FOUND = 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.
write:/ l_msg.
ENDLOOP.
ENDFORM. " FORMAT_MESSAGE
reward if helpful,
keerthi -
Serious Performance Problems in ABAP Reports
Hi All,
We are developing ABAP reports for SAP IS-U/CCS Modules and facing Performance issues.Whole scenario is given below.Please suggest some solution.
1. Total No. Of Business Partners = 1500000
2. Reports Selection Criteria are of two types:
a) GSBER(Business Area) - Selection for atleast 200000 Business Partners
b) Cokey(Division) - Selection for around 1000 to 50000 Business Partners
3. For implementing our reports logic we have to access several tables all of which are very large.They are :
Table Name No. of records (Appx)
DBERCHV 20000000
DBERCHZ1 20000000
DBERDLB 20000000
DFKKKO 20000000
DFKKOP 20000000
EANLH 4000000
ERCH 10000000
ERCHC 10000000
ETTIFN 30000000
EVER 1500000
FKKVKP 1500000
TECOKT 500
TGSBT 12
4. Due to large no. of records we are facing problems at two levels:
a) OpenSQL Statement is taking too much time for data selection
b) Since large no. of records are selected Corresponding loops and data processing also takes much time
5. We have tried almost all ABAP Performance optimization techniques such as using Index, SQL optimization techniques,Read Table Optimization, Loop Statement Optimization etc. but there is not much improvement.
6. For example one of our Reports "R15" takes around 1500 seconds for 1000 Business Partners.
Its Code is attached below:
<b>a) ZISU_SCHL_LTR15_BAPI - Program which schedules actual R15 report in background</b>
*& Report ZISU_SCHL_LTR15_BAPI *
*& Developed By : Piyusha Kirwai *
*& Date : 02/12/2005 *
*& Purpose : To Schedule the LT R 15 prog in background and store
*& the File for Manual R-15 into server.
REPORT ZISU_SCHL_LTR15_BAPI NO STANDARD PAGE HEADING.
TABLES ZEVERFKKVKP.
DATA: DYFIELDS LIKE DYNPREAD OCCURS 0 WITH HEADER LINE.
DATA: IT_TAB TYPE FILETABLE,
GD_SUBRC TYPE I.
DATA: LV_GSBER TYPE TGSBT-GSBER.
RANGES R_COKEY FOR ZEVERFKKVKP-COKEY.
DATA: BEGIN OF GT_TECOKT OCCURS 100,
COKEY TYPE TECOKT-COKEY,
LTEXT TYPE TECOKT-LTEXT,
END OF GT_TECOKT,
BEGIN OF GT_TE422 OCCURS 100,
TERMSCHL TYPE TE422-TERMSCHL,
TERMTEXT TYPE TE422-TERMTEXT,
END OF GT_TE422.
DATA: BEGIN OF GWA_MANUAL_DATA,
COL_1(5) TYPE C,
COL_2(10) TYPE C,
COL_3(40) TYPE C,
COL_4(40) TYPE C,
COL_5(10) TYPE C,
COL_6(19) TYPE C,
COL_7(19) TYPE C,
COL_8(19) TYPE C,
COL_9(19) TYPE C,
COL_10(19) TYPE C,
COL_11(19) TYPE C,
COL_12(10) TYPE C,
COL_13(19) TYPE C,
COL_14(19) TYPE C,
COL_15(19) TYPE C,
COL_16(19) TYPE C,
COL_17(19) TYPE C,
COL_18(19) TYPE C,
END OF GWA_MANUAL_DATA,
GT_MANUAL_DATA LIKE GWA_MANUAL_DATA OCCURS 0,
GT_INTERN_DATA TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
*&-----FOR UPLOADING FILE TO SERVER------------------------------------*
DATA: LV_SERVER_FILE_PREFIX(60) TYPE C.
DATA: LV_SERVER_DATAFILE_NAME(60) TYPE C.
DATA: LV_SERVER_ERRFILE_NAME(60) TYPE C.
DATA: ENDT LIKE SY-UZEIT,
ENDD LIKE SY-DATUM,
JOBCOUNT TYPE TBTCJOB-JOBCOUNT.
SELECTION-SCREEN BEGIN OF BLOCK 001 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: SO_GSBER FOR ZEVERFKKVKP-GSBER OBLIGATORY,
SO_COKEY FOR ZEVERFKKVKP-COKEY OBLIGATORY,
SO_MRU FOR ZEVERFKKVKP-ABLEINH.
PARAMETERS: P_BMNTH(7) TYPE C OBLIGATORY.
SELECT-OPTIONS: SO_GPART FOR ZEVERFKKVKP-GPART.
SELECTION-SCREEN END OF BLOCK 001.
SELECTION-SCREEN BEGIN OF BLOCK 002 WITH FRAME TITLE TEXT-003.
PARAMETERS: P_COMPUT RADIOBUTTON GROUP R15,
P_INCLUD RADIOBUTTON GROUP R15,
P_FILE TYPE RLGRAP-FILENAME MODIF ID ACT.
SELECTION-SCREEN END OF BLOCK 002.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(83) TEXT-004.
SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
* SELECTION-SCREEN COMMENT 8(40) TEXT-005.
*SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF BLOCK 003 WITH FRAME TITLE TEXT-002.
PARAMETERS P_SCHL TYPE C AS CHECKBOX.
PARAMETERS : P_IMMED RADIOBUTTON GROUP SCH ,
P_DT_TM RADIOBUTTON GROUP SCH,
P_DATE TYPE SY-DATUM MODIF ID SHL,
P_TIME TYPE SY-UZEIT MODIF ID SHL.
SELECTION-SCREEN END OF BLOCK 003.
AT SELECTION-SCREEN.
AT SELECTION-SCREEN ON SO_GSBER.
IF NOT SO_GSBER-LOW IS INITIAL.
SELECT SINGLE GSBER FROM TGSBT INTO LV_GSBER
WHERE GSBER = SO_GSBER-LOW.
IF SY-SUBRC <> 0.
MESSAGE E007(ZISU).
ENDIF.
ENDIF.
IF NOT SO_GSBER-HIGH IS INITIAL .
SELECT SINGLE GSBER FROM TGSBT INTO LV_GSBER
WHERE GSBER = SO_GSBER-HIGH.
IF SY-SUBRC <> 0.
MESSAGE E007(ZISU).
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON P_BMNTH.
**check the validity of Billing month format and for valid billing month
IF P_BMNTH CO '0123456789/'.
IF P_BMNTH CP '++++/++'.
IF P_BMNTH+5(2) > 12.
MESSAGE E002(ZISU) WITH 'from'.
ENDIF.
** current year is less than year entered
IF SY-DATUM(4) < P_BMNTH(4).
MESSAGE E003(ZISU) WITH 'from'.
ELSEIF SY-DATUM(4) = P_BMNTH(4).
** month in future
IF SY-DATUM+4(2) < P_BMNTH+5(2).
MESSAGE E004(ZISU) WITH 'from'.
ENDIF.
ENDIF.
ELSE.
MESSAGE E001(ZISU) WITH 'from'.
ENDIF.
ELSE.
** entry have some invalid char
MESSAGE E010(ZISU).
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR SO_COKEY-LOW.
**for geting the CO account assigment key of the entered Business area
CLEAR: DYFIELDS[], DYFIELDS.
PERFORM DIVISON_DATA_GET CHANGING SO_COKEY-LOW.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR SO_COKEY-HIGH.
**for geting the CO account assigment key of the entered Business area
CLEAR: DYFIELDS[], DYFIELDS.
PERFORM DIVISON_DATA_GET CHANGING SO_COKEY-HIGH.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR SO_MRU-LOW.
CLEAR: DYFIELDS[], DYFIELDS.
PERFORM MRU_DATA_GET CHANGING SO_MRU-LOW.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR SO_MRU-HIGH.
CLEAR: DYFIELDS[], DYFIELDS.
PERFORM MRU_DATA_GET CHANGING SO_MRU-HIGH.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
REFRESH: IT_TAB.
**Opens File Open Dialog Box for selecting input file.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
WINDOW_TITLE = 'Select File'
DEFAULT_FILENAME = '*.xls'
MULTISELECTION = ' '
CHANGING
FILE_TABLE = IT_TAB
RC = GD_SUBRC.
LOOP AT IT_TAB INTO P_FILE.
* so_fpath-sign = 'I'.
* so_fpath-option = 'EQ'.
* append so_fpath.
ENDLOOP.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'ACT'.
IF P_INCLUD = ' '.
SCREEN-INPUT = '0'.
ELSE.
SCREEN-INPUT = '1'.
ENDIF.
ENDIF.
IF SCREEN-GROUP1 = 'SHL'.
IF P_DT_TM = 'X'.
SCREEN-INPUT = '1'.
ELSE.
SCREEN-INPUT = '0'.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
INITIALIZATION.
P_DATE = SY-DATUM.
P_TIME = SY-UZEIT + 180.
START-OF-SELECTION.
IF P_INCLUD = 'X' AND P_FILE IS INITIAL.
MESSAGE 'Enter the Manual R-15 File' TYPE 'E'.
ENDIF.
* IF P_INCLUD = 'X'.
* PERFORM UPLOAD_EXCEL_FILE.
* CONCATENATE 'R15' SY-DATUM '-' SY-UZEIT INTO LV_SERVER_FILE_PREFIX.
* CONCATENATE LV_SERVER_FILE_PREFIX '-' 'LT.TMP' INTO
* LV_SERVER_DATAFILE_NAME.
* OPEN DATASET LV_SERVER_DATAFILE_NAME
* FOR OUTPUT
* IN TEXT MODE
* ENCODING DEFAULT.
* LOOP AT GT_MANUAL_DATA INTO GWA_MANUAL_DATA.
* IF ( GWA_MANUAL_DATA-COL_6 CN '0123456789 '
* AND GWA_MANUAL_DATA-COL_7 CN '0123456789 '
* AND GWA_MANUAL_DATA-COL_8 CN '0123456789 '
* AND GWA_MANUAL_DATA-COL_9 CN '0123456789 '
* AND GWA_MANUAL_DATA-COL_10 CN '0123456789 '
* AND GWA_MANUAL_DATA-COL_11 CN '0123456789 '
* AND GWA_MANUAL_DATA-COL_13 CN '0123456789 '
* AND GWA_MANUAL_DATA-COL_14 CN '0123456789 '
* AND GWA_MANUAL_DATA-COL_15 CN '0123456789 '
* AND GWA_MANUAL_DATA-COL_16 CN '0123456789 '
* AND GWA_MANUAL_DATA-COL_17 CN '0123456789 '
* AND GWA_MANUAL_DATA-COL_18 CN '0123456789 ' ).
* MESSAGE 'Character Data in Numerical Field' TYPE 'E'.
* ENDIF.
* TRANSFER GWA_MANUAL_DATA TO LV_SERVER_DATAFILE_NAME.
* ENDLOOP.
* CLOSE DATASET LV_SERVER_DATAFILE_NAME.
* ENDIF. " P_INCLUD = 'X'.
IF P_SCHL = 'X'.
IF P_IMMED = 'X'.
CALL FUNCTION 'C14B_ADD_TIME'
EXPORTING
I_STARTTIME = SY-UZEIT
I_STARTDATE = SY-DATUM
I_ADDTIME = '000010'
IMPORTING
E_ENDTIME = ENDT
E_ENDDATE = ENDD.
ELSEIF P_DT_TM = 'X'.
ENDD = P_DATE.
ENDT = P_TIME.
ENDIF.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
* DELANFREP = ' '
* JOBGROUP = ' '
JOBNAME = 'R15JOB'
* SDLSTRTDT = ENDD
* SDLSTRTTM = ENDT
* JOBCLASS =
IMPORTING
JOBCOUNT = JOBCOUNT
* CHANGING
* RET =
* EXCEPTIONS
* CANT_CREATE_JOB = 1
* INVALID_JOB_DATA = 2
* JOBNAME_MISSING = 3
* OTHERS = 4
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF P_INCLUD = 'X'.
PERFORM UPLOAD_EXCEL_FILE.
CONCATENATE 'R15' SY-DATUM '-' SY-UZEIT INTO LV_SERVER_FILE_PREFIX.
CONCATENATE LV_SERVER_FILE_PREFIX '-' JOBCOUNT 'LT.TMP' INTO
LV_SERVER_DATAFILE_NAME.
CONDENSE LV_SERVER_DATAFILE_NAME.
OPEN DATASET LV_SERVER_DATAFILE_NAME
FOR OUTPUT
IN TEXT MODE
ENCODING DEFAULT.
IF SY-SUBRC NE 0.
MESSAGE 'Error in Creating File on Server' TYPE 'E'.
ENDIF.
LOOP AT GT_MANUAL_DATA INTO GWA_MANUAL_DATA.
IF ( GWA_MANUAL_DATA-COL_6 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_7 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_8 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_9 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_10 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_11 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_13 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_14 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_15 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_16 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_17 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_18 CN '0123456789 ' ).
MESSAGE 'Character Data in Numerical Field' TYPE 'E'.
ENDIF.
TRANSFER GWA_MANUAL_DATA TO LV_SERVER_DATAFILE_NAME.
ENDLOOP.
CLOSE DATASET LV_SERVER_DATAFILE_NAME.
IF SY-SUBRC NE 0.
MESSAGE 'Error in Creating File on Server' TYPE 'E'.
ENDIF.
ENDIF. " P_INCLUD = 'X'.
SUBMIT ZISU_LTR15_TUNE
WITH SO_GSBER IN SO_GSBER
WITH SO_COKEY IN SO_COKEY
WITH SO_MRU IN SO_MRU
WITH SO_GPART IN SO_GPART
WITH P_BMNTH = P_BMNTH
WITH P_COMPUT = P_COMPUT
WITH P_INCLUD = P_INCLUD
WITH P_FILE = LV_SERVER_DATAFILE_NAME
USER SY-UNAME VIA JOB 'R15JOB' NUMBER JOBCOUNT AND RETURN.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
* AT_OPMODE = ' '
* AT_OPMODE_PERIODIC = ' '
* CALENDAR_ID = ' '
* EVENT_ID = ' '
* EVENT_PARAM = ' '
* EVENT_PERIODIC = ' '
JOBCOUNT = JOBCOUNT
JOBNAME = 'R15JOB'
* LASTSTRTDT = NO_DATE
* LASTSTRTTM = NO_TIME
* PRDDAYS = 0
* PRDHOURS = 0
* PRDMINS = 0
* PRDMONTHS = 0
* PRDWEEKS = 0
* PREDJOB_CHECKSTAT = ' '
* PRED_JOBCOUNT = ' '
* PRED_JOBNAME = ' '
SDLSTRTDT = ENDD
SDLSTRTTM = ENDT
* STARTDATE_RESTRICTION = BTC_PROCESS_ALWAYS
STRTIMMED = P_IMMED
* TARGETSYSTEM = ' '
* START_ON_WORKDAY_NOT_BEFORE = SY-DATUM
* START_ON_WORKDAY_NR = 0
* WORKDAY_COUNT_DIRECTION = 0
* RECIPIENT_OBJ =
* TARGETSERVER = ' '
* DONT_RELEASE = ' '
* TARGETGROUP = ' '
* DIRECT_START =
* IMPORTING
* JOB_WAS_RELEASED =
* CHANGING
* RET =
* EXCEPTIONS
* CANT_START_IMMEDIATE = 1
* INVALID_STARTDATE = 2
* JOBNAME_MISSING = 3
* JOB_CLOSE_FAILED = 4
* JOB_NOSTEPS = 5
* JOB_NOTEX = 6
* LOCK_FAILED = 7
* INVALID_TARGET = 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.
ELSE. " IF NOT TO RUN IN BACKGROUND
IF P_INCLUD = 'X'.
PERFORM UPLOAD_EXCEL_FILE.
CONCATENATE 'R15' SY-DATUM '-' SY-UZEIT INTO LV_SERVER_FILE_PREFIX.
CONCATENATE LV_SERVER_FILE_PREFIX '-' 'LT.TMP' INTO
LV_SERVER_DATAFILE_NAME.
CONDENSE LV_SERVER_DATAFILE_NAME.
OPEN DATASET LV_SERVER_DATAFILE_NAME
FOR OUTPUT
IN TEXT MODE
ENCODING DEFAULT.
IF SY-SUBRC NE 0.
MESSAGE 'Error in Creating File on Server' TYPE 'E'.
ENDIF.
LOOP AT GT_MANUAL_DATA INTO GWA_MANUAL_DATA.
IF ( GWA_MANUAL_DATA-COL_6 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_7 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_8 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_9 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_10 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_11 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_13 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_14 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_15 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_16 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_17 CN '0123456789 '
AND GWA_MANUAL_DATA-COL_18 CN '0123456789 ' ).
MESSAGE 'Character Data in Numerical Field' TYPE 'E'.
ENDIF.
TRANSFER GWA_MANUAL_DATA TO LV_SERVER_DATAFILE_NAME.
ENDLOOP.
CLOSE DATASET LV_SERVER_DATAFILE_NAME.
IF SY-SUBRC NE 0.
MESSAGE 'Error in Creating File on Server' TYPE 'E'.
ENDIF.
ENDIF. " P_INCLUD = 'X'.
IF NOT SY-BATCH IS INITIAL.
SUBMIT ZISU_LTR15_TUNE
WITH SO_GSBER IN SO_GSBER
WITH SO_COKEY IN SO_COKEY
WITH SO_MRU IN SO_MRU
WITH SO_GPART IN SO_GPART
WITH P_BMNTH = P_BMNTH
WITH P_COMPUT = P_COMPUT
WITH P_INCLUD = P_INCLUD
WITH P_FILE = LV_SERVER_DATAFILE_NAME
TO SAP-SPOOL WITHOUT SPOOL DYNPRO.
ELSE.
SUBMIT ZISU_LTR15_TUNE
WITH SO_GSBER IN SO_GSBER
WITH SO_COKEY IN SO_COKEY
WITH SO_MRU IN SO_MRU
WITH SO_GPART IN SO_GPART
WITH P_BMNTH = P_BMNTH
WITH P_COMPUT = P_COMPUT
WITH P_INCLUD = P_INCLUD
WITH P_FILE = LV_SERVER_DATAFILE_NAME.
ENDIF.
ENDIF.
*& Form divison_data_get
* text
* <--P_SO_COKEY_LOW text
FORM DIVISON_DATA_GET CHANGING P_SO_COKEY_LOW.
**to get the search help for division
DATA : LV_LINES TYPE SY-TFILL,
LT_RETURN_TAB LIKE DDSHRETVAL OCCURS 0, " with header line.
LWA_RETURN_TAB LIKE DDSHRETVAL.
DATA: LV_COKEY TYPE ZEVERFKKVKP-COKEY.
**according to the Business area entered]
* break csebdev1.
REFRESH R_COKEY[].
DESCRIBE TABLE SO_GSBER LINES LV_LINES.
** when user has neither pressed the enter key nor selected the values
**using search help
IF LV_LINES = 0.
* loop at so_gsber.
CLEAR R_COKEY.
* if so_gsber-high is initial.
* break csebdev1.
DYFIELDS-FIELDNAME = 'SO_GSBER-LOW'.
APPEND DYFIELDS.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = SY-CPROG
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = DYFIELDS.
* r_cokey-sign = 'I'.
* r_cokey-option = 'CP'.
*r_cokey-low = so_gsber-low+0(2).
CONCATENATE DYFIELDS-FIELDVALUE+0(2) '*' INTO R_COKEY-LOW.
* elseif not so_gsber-high is initial.
DYFIELDS-FIELDNAME = 'SO_GSBER-HIGH'.
APPEND DYFIELDS.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = SY-CPROG
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = DYFIELDS.
IF NOT DYFIELDS-FIELDVALUE IS INITIAL.
CONCATENATE DYFIELDS-FIELDVALUE+0(2) '99999999' INTO R_COKEY-HIGH.
ENDIF.
* endif.
IF NOT R_COKEY-HIGH IS INITIAL.
R_COKEY-SIGN = 'I'.
R_COKEY-OPTION = 'BT'.
ELSEIF R_COKEY-HIGH IS INITIAL.
R_COKEY-SIGN = 'I'.
R_COKEY-OPTION = 'CP'.
ENDIF.
APPEND R_COKEY.
ENDIF.
* endloop.
* APPEND DYFIELDS.
IF LV_LINES > 0.
* break-point.
IF NOT SO_GSBER[] IS INITIAL.
LOOP AT SO_GSBER.
* r_cokey-sign = 'I'.
* r_cokey-option = 'CP'.
*r_cokey-low = so_gsber-low+0(2).
CONCATENATE SO_GSBER-LOW+0(2) '*' INTO R_COKEY-LOW.
IF NOT SO_GSBER-HIGH IS INITIAL.
CONCATENATE SO_GSBER-HIGH+0(2) '99999999' INTO R_COKEY-HIGH.
ENDIF.
IF NOT R_COKEY-HIGH IS INITIAL.
R_COKEY-SIGN = 'I'.
R_COKEY-OPTION = 'BT'.
ELSEIF R_COKEY-HIGH IS INITIAL.
R_COKEY-SIGN = 'I'.
R_COKEY-OPTION = 'CP'.
ENDIF.
APPEND R_COKEY TO R_COKEY.
ENDLOOP.
ENDIF.
ENDIF.
IF NOT R_COKEY[] IS INITIAL.
* break csebdev1.
REFRESH GT_TECOKT[].
SELECT COKEY LTEXT
FROM TECOKT
INTO TABLE GT_TECOKT
WHERE COKEY IN R_COKEY AND SPRAS = 'EN'.
* %_HINTS ORACLE '("TECOKT","TECOKT~1")'.
ENDIF.
**now call the search help
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = ' '
RETFIELD = 'COKEY'
* PVALKEY = ' '
* DYNPPROG = ' '
* DYNPNR = ' '
* DYNPROFIELD = ' '
* STEPL = 0
WINDOW_TITLE = 'Division'
VALUE = DYFIELDS-FIELDVALUE
VALUE_ORG = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* MARK_TAB =
* IMPORTING
* USER_RESET =
TABLES
VALUE_TAB = GT_TECOKT
* FIELD_TAB =
RETURN_TAB = LT_RETURN_TAB
* DYNPFLD_MAPPING =
* EXCEPTIONS
* PARAMETER_ERROR = 1
* NO_VALUES_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.
ENDIF.
READ TABLE LT_RETURN_TAB INTO LWA_RETURN_TAB INDEX 1.
LV_COKEY = LWA_RETURN_TAB-FIELDVAL.
*break csebdev1.
ENDFORM. " divison_data_get
*& Form upload_excel_file
* text
* --> p1 text
* <-- p2 text
FORM UPLOAD_EXCEL_FILE .
DATA: LV_INDEX TYPE I.
FIELD-SYMBOLS <VAL> TYPE ANY.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FILE
I_BEGIN_COL = 1
I_BEGIN_ROW = 8
I_END_COL = 18
I_END_ROW = 94
TABLES
INTERN = GT_INTERN_DATA
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 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.
ENDIF.
IF NOT GT_INTERN_DATA[] IS INITIAL.
SORT GT_INTERN_DATA BY ROW COL.
LOOP AT GT_INTERN_DATA.
MOVE GT_INTERN_DATA-COL TO LV_INDEX.
ASSIGN COMPONENT LV_INDEX OF STRUCTURE GWA_MANUAL_DATA TO <VAL>.
MOVE GT_INTERN_DATA-VALUE TO <VAL>.
AT END OF ROW.
APPEND GWA_MANUAL_DATA TO GT_MANUAL_DATA.
CLEAR GWA_MANUAL_DATA.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM. " upload_excel_file
*& Form MRU_DATA_GET
* text
* <--P_SO_MRU_LOW text
FORM MRU_DATA_GET CHANGING LV_MRU.
**to get the search help for Group
DATA : LV_LINES TYPE SY-TFILL,
LT_RETURN_TAB LIKE DDSHRETVAL OCCURS 0,
LWA_RETURN_TAB LIKE DDSHRETVAL.
* lv_mru_p(3) type c.
RANGES R_MRU FOR EANLH-ABLEINH.
**according to the Business area entered
** break csebdev1.
REFRESH R_MRU[].
DESCRIBE TABLE SO_GSBER LINES LV_LINES.
** when user has neither pressed the enter key nor selected the values
**using search help
IF LV_LINES = 0.
CLEAR R_MRU[].
DYFIELDS-FIELDNAME = 'SO_GSBER-LOW'.
APPEND DYFIELDS.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = SY-CPROG
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = DYFIELDS.
CONCATENATE DYFIELDS-FIELDVALUE+0(2) '*' INTO R_MRU-LOW.
DYFIELDS-FIELDNAME = 'SO_GSBER-HIGH'.
APPEND DYFIELDS.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = SY-CPROG
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = DYFIELDS.
IF NOT DYFIELDS-FIELDVALUE IS INITIAL.
CONCATENATE DYFIELDS-FIELDVALUE+0(2) '99999999' INTO R_MRU-HIGH.
ENDIF.
IF NOT R_MRU-HIGH IS INITIAL.
R_MRU-SIGN = 'I'.
R_MRU-OPTION = 'BT'.
ELSEIF R_MRU-HIGH IS INITIAL.
R_MRU-SIGN = 'I'.
R_MRU-OPTION = 'CP'.
ENDIF.
APPEND R_MRU.
ENDIF. " end lv_lines =0
IF LV_LINES > 0.
IF NOT SO_GSBER[] IS INITIAL.
LOOP AT SO_GSBER.
CONCATENATE SO_GSBER-LOW+0(2) '*' INTO R_MRU-LOW.
IF NOT SO_GSBER-HIGH IS INITIAL.
CONCATENATE SO_GSBER-HIGH+0(2) '99999999' INTO R_MRU-HIGH.
ENDIF.
IF R_MRU-HIGH IS INITIAL.
R_MRU-SIGN = 'I'.
R_MRU-OPTION = 'CP'.
ELSEIF NOT R_MRU-HIGH IS INITIAL.
R_MRU-SIGN = 'I'.
R_MRU-OPTION = 'BT'.
ENDIF.
APPEND R_MRU.
ENDLOOP.
ENDIF. " end so_GSBER[]
ENDIF. " end lv_lines > 0
IF NOT R_MRU[] IS INITIAL.
* break csebdev1.
REFRESH GT_TE422[].
SELECT TERMSCHL TERMTEXT FROM TE422 INTO CORRESPONDING FIELDS OF
TABLE GT_TE422 WHERE TERMSCHL IN R_MRU .
ENDIF.
**now call the search help
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = ' '
RETFIELD = 'TERMSCHL'
* PVALKEY = ' '
* DYNPPROG = ' '
* DYNPNR = ' '
* DYNPROFIELD = ' '
* STEPL = 0
WINDOW_TITLE = 'Group'
VALUE = DYFIELDS-FIELDVALUE
VALUE_ORG = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* MARK_TAB =
* IMPORTING
* USER_RESET =
TABLES
VALUE_TAB = GT_TE422
* FIELD_TAB =
RETURN_TAB = LT_RETURN_TAB
* DYNPFLD_MAPPING =
* EXCEPTIONS
* PARAMETER_ERROR = 1
* NO_VALUES_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.
ENDIF.
READ TABLE LT_RETURN_TAB INTO LWA_RETURN_TAB INDEX 1.
LV_MRU = LWA_RETURN_TAB-FIELDVAL.
ENDFORM. " MRU_DATA_GET
<b>b) ZISU_LTR15_TUNE - Actual R15 report</b>
*& Report ZISU_LTR15_TUNE *
REPORT ZISU_LTR15_TUNE NO STANDARD PAGE HEADING MESSAGE-ID ZISU
LINE-SIZE 250 LINE-COUNT 65.
**Tables
TABLES : EVER,
FKKVKP,
EANLH.
SELECTION-SCREEN BEGIN OF BLOCK SELECTION
WITH FRAME TITLE TEXT-001 . "no intervals.
SELECT-OPTIONS: SO_GSBER FOR EVER-GSBER OBLIGATORY,
SO_COKEY FOR EVER-COKEY,
SO_MRU FOR EANLH-ABLEINH.
PARAMETERS: P_BMNTH(7) TYPE C OBLIGATORY.
PARAMETERS: P_CONT TYPE EVER-VERTRAG.
SELECT-OPTIONS: SO_GPART FOR FKKVKP-GPART.
SELECTION-SCREEN END OF BLOCK SELECTION.
SELECTION-SCREEN BEGIN OF BLOCK PROCESS WITH FRAME.
PARAMETERS: P_COMPUT RADIOBUTTON GROUP R15.
PARAMETERS: P_INCLUD RADIOBUTTON GROUP R15,
P_FILE(60) TYPE C.
SELECTION-SCREEN END OF BLOCK PROCESS.
* Start of Type declaration
TYPES: BEGIN OF ST_TB024 ,
IND_SECTOR TYPE TB024-IND_SECTOR,
TEXTLONG TYPE TB024-TEXTLONG,
END OF ST_TB024,
BEGIN OF ST_TECOKT,
COKEY TYPE TECOKT-COKEY,
LTEXT TYPE TECOKT-LTEXT,
END OF ST_TECOKT,
BEGIN OF ST_TGSBT,
GSBER TYPE TGSBT-GSBER,
GTEXT TYPE TGSBT-GTEXT,
END OF ST_TGSBT,
BEGIN OF ST_TE422,
TERMSCHL TYPE TE422-TERMSCHL,
TERMTEXT TYPE TE422-TERMTEXT,
END OF ST_TE422.
* Start of data declaration
DATA: IT_TAB TYPE FILETABLE,
GD_SUBRC TYPE I.
DATA : GT_TB024 TYPE STANDARD TABLE OF ST_TB024 WITH HEADER LINE
INITIAL SIZE 0,
GT_TECOKT TYPE STANDARD TABLE OF ST_TECOKT
WITH HEADER LINE,
GT_TGSBT TYPE SORTED TABLE OF ST_TGSBT
WITH UNIQUE KEY GSBER WITH HEADER LINE,
GT_TE422 TYPE TABLE OF ST_TE422 WITH HEADER LINE INITIAL SIZE 0,
BEGIN OF GWA_EVER,
VKONT TYPE EVER-VKONTO,
ANLAGE TYPE EVER-ANLAGE,
ABRSPERR TYPE EVER-ABRSPERR,
END OF GWA_EVER,
GT_EVER LIKE TABLE OF GWA_EVER INITIAL SIZE 0,
BEGIN OF GWA_EANLH,
ANLAGE TYPE EANLH-ANLAGE,
BRANCHE TYPE EANLH-BRANCHE,
END OF GWA_EANLH,
GT_EANLH LIKE TABLE OF GWA_EANLH INITIAL SIZE 0,
BEGIN OF GWA_FKKVKP,
VKONT TYPE FKKVKP-VKONT,
KTOKL TYPE FKKVKP-KTOKL,
END OF GWA_FKKVKP,
GT_FKKVKP LIKE TABLE OF GWA_FKKVKP INITIAL SIZE 0,
BEGIN OF GWA_EVER_EANLH_FKKVKP,
VKONT TYPE FKKVKP-VKONT,
ANLAGE TYPE EVER-ANLAGE,
ABRSPERR TYPE EVER-ABRSPERR,
BRANCHE TYPE EANLH-BRANCHE,
KTOKL TYPE FKKVKP-KTOKL,
END OF GWA_EVER_EANLH_FKKVKP,
GT_EVER_EANLH_FKKVKP LIKE TABLE OF GWA_EVER_EANLH_FKKVKP
INITIAL SIZE 0,
GT_EVER_EANLH_FKKVKP_INACT LIKE STANDARD TABLE OF
GWA_EVER_EANLH_FKKVKP INITIAL SIZE 0,
BEGIN OF GWA_ERCH,
BELNR TYPE ERCH-BELNR,
VKONT TYPE ERCH-VKONT,
END OF GWA_ERCH,
GT_ERCH LIKE TABLE OF GWA_ERCH INITIAL SIZE 0,
BEGIN OF GWA_PRINTDOC,
OPBEL TYPE ERDK-OPBEL,
GPART TYPE ERDK-PARTNER,
VKONT TYPE ERDK-VKONT,
BUDAT TYPE ERDK-BUDAT,
FAEDN TYPE ERDK-FAEDN,
END OF GWA_PRINTDOC,
GT_PRINTDOC LIKE TABLE OF GWA_PRINTDOC INITIAL SIZE 0,
BEGIN OF GWA_DBERCHZ1,
BELNR TYPE DBERCHZ1-BELNR,
EIN01 TYPE DBERCHZ1-EIN01,
V_ABRMENGE TYPE DBERCHZ1-V_ABRMENGE,
END OF GWA_DBERCHZ1,
GT_DBERCHZ1 LIKE TABLE OF GWA_DBERCHZ1 INITIAL SIZE 0,
BEGIN OF GWA_ERCHC,
BELNR TYPE ERCHC-BELNR,
OPBEL TYPE ERCHC-OPBEL,
BUDAT TYPE ERCHC-BUDAT,
END OF GWA_ERCHC,
GT_ERCHC LIKE TABLE OF GWA_ERCHC INITIAL SIZE 0,
* arrears for inactive consumers.
BEGIN OF GWA_DFKKOP_INACTIVE_ARR,
OPBEL TYPE DFKKOP-OPBEL,
VKONT TYPE DFKKOP-VKONT,
BETRH TYPE DFKKOP-BETRH,
END OF GWA_DFKKOP_INACTIVE_ARR,
GT_DFKKOP_INACTIVE_ARR LIKE TABLE OF GWA_DFKKOP_INACTIVE_ARR
INITIAL SIZE 0,
BEGIN OF GWA_ETTIFN,
ANLAGE TYPE ETTIFN-ANLAGE,
OPERAND TYPE ETTIFN-OPERAND,
WERT1 TYPE ETTIFN-WERT1,
END OF GWA_ETTIFN,
GT_ETTIFN LIKE SORTED TABLE OF GWA_ETTIFN
WITH NON-UNIQUE KEY ANLAGE OPERAND INITIAL SIZE 0,
BEGIN OF GWA_DBERDLB,
PRINTDOC TYPE DBERDLB-PRINTDOC,
BILLDOC TYPE DBERDLB-BILLDOC,
BILLDOCLINE TYPE DBERDLB-BILLDOCLINE,
NETTOBTR TYPE DBERDLB-NETTOBTR,
END OF GWA_DBERDLB,
GT_DBERDLB LIKE TABLE OF GWA_DBERDLB INITIAL SIZE 0,
BEGIN OF GWA_DBERCHZ1_BILL,
BELNR TYPE DBERCHZ1-BELNR,
BELZEILE TYPE DBERCHZ1-BELZEILE,
TVORG TYPE DBERCHZ1-TVORG,
END OF GWA_DBERCHZ1_BILL,
GT_DBERCHZ1_BILL LIKE TABLE OF GWA_DBERCHZ1_BILL INITIAL SIZE 0,
BEGIN OF GWA_BILLDOC,
PRINTDOC TYPE ERDK-OPBEL,
BILLDOC TYPE DBERDLB-BILLDOC,
END OF GWA_BILLDOC,
GT_BILLDOC LIKE TABLE OF GWA_BILLDOC INITIAL SIZE 0,
BEGIN OF GWA_DBERCHV,
BELNR TYPE DBERCHV-BELNR,
OPERAND TYPE DBERCHV-OPERAND,
EZ_ABRMENGE TYPE DBERCHV-EZ_ABRMENGE,
ABLESGR TYPE DBERCHV-ABLESGR,
ABLESGRV TYPE DBERCHV-ABLESGRV,
END OF GWA_DBERCHV,
GT_DBERCHV LIKE TABLE OF GWA_DBERCHV INITIAL SIZE 0,
BEGIN OF GWA_DFKKOP_ARREAR,
OPBEL TYPE DFKKOP-OPBEL,
VKONT TYPE DFKKOP-VKONT,
HVORG TYPE DFKKOP-HVORG,
TVORG TYPE DFKKOP-TVORG,
BUDAT TYPE DFKKOP-BUDAT,
BETRH TYPE DFKKOP-BETRH,
AUGDT TYPE DFKKOP-AUGDT,
XBLNR TYPE DFKKOP-XBLNR,
END OF GWA_DFKKOP_ARREAR,
GT_DFKKOP_ARREAR LIKE TABLE OF GWA_DFKKOP_ARREAR INITIAL SIZE 0,
BEGIN OF GWA_MASTER_DATA,
SLNO(4) TYPE C,
IND_SECTOR TYPE TB024-IND_SECTOR,
TEXTLONG TYPE TB024-TEXTLONG,
AC_CODE TYPE TFK033D-FUN01,
END OF GWA_MASTER_DATA,
GT_MASTER_DATA LIKE TABLE OF GWA_MASTER_DATA INITIAL SIZE 0,
** internal table for final prepared data
BEGIN OF GWA_FINAL_DATA,
SLNO(4) TYPE C,
IND_SECTOR TYPE TB024-IND_SECTOR, " for testing
INDUSTRY TYPE TB024-TEXTLONG,
AC_CODE TYPE TFK033D-FUN01,
* *for urban partners
UPARTNER TYPE I , "(6) type n,
UBAD_METER TYPE I, "(4) type n,
UINACTIVE TYPE I,
ULOAD(8) TYPE P DECIMALS 2,
UUNITS(8) TYPE P DECIMALS 2,
UDEMANDS(8) TYPE P DECIMALS 2,
UARREARS(8) TYPE P DECIMALS 2, "FKKMAKO-Msalm,
UINACT_ARR(8) TYPE P DECIMALS 2,
BLANK(10) TYPE C,
* *for rural partners
RPARTNER TYPE I , "(6) type n,
RBAD_METER TYPE I , "(4) type n,
RINACTIVE TYPE I,
RLOAD(8) TYPE P DECIMALS 2,
RUNITS(8) TYPE P DECIMALS 2,
RDEMANDS(8) TYPE P DECIMALS 2,
RARREARS(8) TYPE P DECIMALS 2,
RINACT_ARR(8) TYPE P DECIMALS 2,
END OF GWA_FINAL_DATA,
GT_FINAL_DATA LIKE TABLE OF GWA_FINAL_DATA INITIAL SIZE 0,
BEGIN OF GWA_MANUAL_DATA,
COL_1(5) TYPE C,
COL_2(10) TYPE C,
COL_3(40) TYPE C,
COL_4(40) TYPE C,
COL_5(10) TYPE C,
COL_6(19) TYPE C,
COL_7(19) TYPE C,
COL_8(19) TYPE C,
COL_9(19) TYPE C,
COL_10(19) TYPE C,
COL_11(19) TYPE C,
COL_12(10) TYPE C,
COL_13(19) TYPE C,
COL_14(19) TYPE C,
COL_15(19) TYPE C,
COL_16(19) TYPE C,
COL_17(19) TYPE C,
COL_18(19) TYPE C,
END OF GWA_MANUAL_DATA,
GT_MANUAL_DATA LIKE TABLE OF GWA_MANUAL_DATA INITIAL SIZE 0.
** Variables for grand total of all heads.
DATA : GV_T_UPART TYPE I,
GV_T_RPART TYPE I,
GV_T_RINACTIVE TYPE I,
GV_T_UINACTIVE TYPE I,
GV_UDEF_MTR TYPE I,
GV_RDEF_MTR TYPE I,
GV_UCON_LOAD(16) TYPE P DECIMALS 2,
GV_RCON_LOAD(16) TYPE P DECIMALS 2,
GV_UUNITS(16) TYPE P DECIMALS 2,
GV_RUNITS(16) TYPE P DECIMALS 2,
GV_UDEMAND(16) TYPE P DECIMALS 2,
GV_RDEMAND(16) TYPE P DECIMALS 2,
GV_UARREAR(16) TYPE P DECIMALS 2,
GV_RARREAR(16) TYPE P DECIMALS 2,
GV_UINACT_ARR(16) TYPE P DECIMALS 2,
GV_RINACT_ARR(16) TYPE P DECIMALS 2,
GV_U_SD_DMD(16) TYPE P DECIMALS 2,
GV_R_SD_DMD(16) TYPE P DECIMALS 2,
GV_U_SD_ARR(16) TYPE P DECIMALS 2,
GV_R_SD_ARR(16) TYPE P DECIMALS 2,
GV_UR_PART TYPE I,
GV_UR_DEF_MTR TYPE I,
GV_UR_CON_LOAD(16) TYPE P DECIMALS 2,
GV_UR_UNITS(16) TYPE P DECIMALS 2,
GV_UR_DEMAND(16) TYPE P DECIMALS 2,
GV_UR_ARREARS(16) TYPE P DECIMALS 2,
GV_LOWDATE TYPE SY-DATUM,
GV_HIGHDATE TYPE SY-DATUM,
GV_YEAR LIKE DBERCHV-EZ_ABRMENGE,
GV_MONTH LIKE DBERCHZ1-V_ABRMENGE,
GV_MNTH_NAME TYPE T247-KTX.
DATA:
**total meter rent
GV_UTOTMETERRENT TYPE P LENGTH 16 DECIMALS 2,
GV_RTOTMETERRENT TYPE P LENGTH 16 DECIMALS 2,
**for total surcharge
GV_UTOTSURCHRG TYPE P LENGTH 16 DECIMALS 2, "dberdlb-nettobtr,
GV_RTOTSURCHRG TYPE P LENGTH 16 DECIMALS 2, "dberdlb-nettobtr,
**for total ED
GV_UTOTED TYPE P LENGTH 16 DECIMALS 2, "dberdlb-nettobtr,
GV_RTOTED TYPE P LENGTH 16 DECIMALS 2, "dberdlb-nettobtr,
**for total ED Cess
GV_UTOTEDCESS TYPE P LENGTH 16 DECIMALS 2, "dberdlb-nettobtr,
GV_RTOTEDCESS TYPE P LENGTH 16 DECIMALS 2, "dberdlb-nettobtr,
**for total other misc rev
GV_UTOTMISCREV TYPE P LENGTH 16 DECIMALS 2,
GV_RTOTMISCREV TYPE P LENGTH 16 DECIMALS 2,
**for total ED of Free agricultural pump
GV_RTOTEDAGRI TYPE P LENGTH 16 DECIMALS 2,
GV_UTOTEDAGRI TYPE P LENGTH 16 DECIMALS 2,
**for ED cess of Free agriculture pump
GV_RTOTCESSAGRI TYPE P LENGTH 16 DECIMALS 2,
GV_UTOTCESSAGRI TYPE P LENGTH 16 DECIMALS 2,
***data for selection screen data validation
GV_GSBER TYPE EVER-GSBER,
GV_COKEY TYPE EVER-COKEY,
DYFIELDS LIKE DYNPREAD OCCURS 0 WITH HEADER LINE,
GT_INTERN_DATA TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
RANGES: R_COKEY FOR TECOKT-COKEY.
AT SELECTION-SCREEN.
AT SELECTION-SCREEN ON SO_GSBER.
IF NOT SO_GSBER-LOW IS INITIAL.
SELECT SINGLE GSBER FROM TGSBT INTO GT_TGSBT-GSBER WHERE
GSBER = SO_GSBER-LOW.
IF SY-SUBRC <> 0.
MESSAGE E007.
ENDIF.
ENDIF.
IF NOT SO_GSBER-HIGH IS INITIAL .
SELECT SINGLE GSBER FROM TGSBT INTO GT_TGSBT-GSBER WHERE
GSBER = SO_GSBER-HIGH.
IF SY-SUBRC <> 0.
MESSAGE E007.
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON P_BMNTH.
**check the validity of Billing month format and for valid billing month
IF P_BMNTH CO '0123456789/'.
IF P_BMNTH CP '++++/++'.
IF P_BMNTH+5(2) > 12.
MESSAGE E002 WITH 'from'.
ENDIF.
** current year is less than year entered
IF SY-DATUM(4) < P_BMNTH(4).
MESSAGE E003 WITH 'from'.
ELSEIF SY-DATUM(4) = P_BMNTH(4).
** month in future
IF SY-DATUM+4(2) < P_BMNTH+5(2).
MESSAGE E004 WITH 'from'.
ENDIF.
ENDIF.
ELSE.
MESSAGE E001 WITH 'from'.
ENDIF.
ELSE.
** entry have some invalid char
MESSAGE E010.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR SO_COKEY-LOW.
**for geting the CO account assigment key of the entered Business area
CLEAR: DYFIELDS[], DYFIELDS.
PERFORM DIVISON_DATA_GET CHANGING SO_COKEY-LOW.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR SO_COKEY-HIGH.
CLEAR: DYFIELDS[], DYFIELDS.
PERFORM DIVISON_DATA_GET CHANGING SO_COKEY-HIGH.
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
* REFRESH: IT_TAB.
***Opens File Open Dialog Box for selecting input file.
* CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
* EXPORTING
* WINDOW_TITLE = 'Select File'
* DEFAULT_FILENAME = '*.xls'
* MULTISELECTION = ' '
* CHANGING
* FILE_TABLE = IT_TAB
* RC = GD_SUBRC.
* LOOP AT IT_TAB INTO P_FILE.
** so_fpath-sign = 'I'.
** so_fpath-option = 'EQ'.
** append so_fpath.
* ENDLOOP.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'ACT'.
IF P_INCLUD = ' '.
SCREEN-INPUT = '0'.
ELSE.
SCREEN-INPUT = '1'.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
* End of Selection screen processing
TOP-OF-PAGE.
DATA : LV_TEXT(70) TYPE C.
FORMAT INTENSIFIED OFF.
WRITE:/50 'CHHATTISGARH STATE ELECTRICITY BOARD',
/42 'R-15 REPORT FOR LT CONSUMERS FOR THE MONTH OF',
GV_MNTH_NAME NO-GAP,'-' NO-GAP, P_BMNTH(4) NO-GAP,
180 'PAGE-NO. -', SY-PAGNO LEFT-JUSTIFIED.
SKIP.
WRITE:/2 'RAO', 15 ':'.
LOOP AT GT_TGSBT WHERE GSBER IN SO_GSBER.
IF STRLEN( LV_TEXT ) > 60.
WRITE: 16 LV_TEXT, / ''.
CLEAR LV_TEXT.
ENDIF.
CONCATENATE LV_TEXT GT_TGSBT-GSBER '-' GT_TGSBT-GTEXT
INTO LV_TEXT SEPARATED BY SPACE.
ENDLOOP.
WRITE: 16 LV_TEXT.
CLEAR LV_TEXT.
WRITE: /2 'Division',15 ':'.
LOOP AT GT_TECOKT.
IF STRLEN( LV_TEXT ) > 60.
WRITE: 16 LV_TEXT, /.
CLEAR LV_TEXT.
ENDIF.
CONCATENATE LV_TEXT GT_TECOKT-COKEY '-' GT_TECOKT-LTEXT
INTO LV_TEXT SEPARATED BY SPACE.
ENDLOOP.
WRITE: 16 LV_TEXT.
CLEAR LV_TEXT.
WRITE: /2 'Group',15 ':'.
LOOP AT GT_TE422 .
IF STRLEN( LV_TEXT ) > 60.
WRITE: 16 LV_TEXT, /.
CLEAR LV_TEXT.
ENDIF.
CONCATENATE LV_TEXT GT_TE422-TERMSCHL '-' GT_TE422-TERMTEXT
INTO LV_TEXT SEPARATED BY SPACE.
ENDLOOP.
WRITE: 16 LV_TEXT.
CLEAR LV_TEXT.
**legends
* write :/ text-028, 15 ':',16 text-029.
**now write the headings on every page
SET LEFT SCROLL-BOUNDARY COLUMN 50.
FORMAT COLOR 1 ON.
WRITE :/1(244) SY-ULINE.
WRITE :/1 SY-VLINE,6 SY-VLINE,50 SY-VLINE, 58 SY-VLINE, 59
'<----------------------------------',
'U R B A N A R E A',
'----------------------------------->'.
WRITE : 151 SY-VLINE, 152
'<----------------------------------',
'R U R A L A R E A',
'----------------------------------->',
244 SY-VLINE.
WRITE :/1 SY-VLINE,
2 'Slno',
6 SY-VLINE,
7 'Revenue Category',
50 SY-VLINE,
51 'A/C',
58 SY-VLINE,
59 'Cons-',
67 SY-VLINE,
68 'Deff',
75 SY-VLINE,
76 'Conn',
89 SY-VLINE,
90 'Sold',
108 SY-VLINE,
109 'Demand',
129 SY-VLINE,
130 'Previous',
151 SY-VLINE,
152 'Cons-',
160 SY-VLINE,
161 'Deff',
168 SY-VLINE,
169 'Conn',
182 SY-VLINE,
183 'Sold',
201 SY-VLINE,
202 'Demand',
222 SY-VLINE,
223 'Previous',
244 SY-VLINE.
WRITE :/1 SY-VLINE,
6 SY-VLINE,
50 SY-VLINE,
51 'Code',
58 SY-VLINE,
59 'umers',
67 SY-VLINE,
68 'mtrs',
75 SY-VLINE,
76 'Load-KW',
89 SY-VLINE,
90 'Units',
108 SY-VLINE,
129 SY-VLINE,
130 'Arrear',
151 SY-VLINE,
152 'umers',
160 SY-VLINE,
161 'mtrs',
168 SY-VLINE,
169 'Load-KW',
182 SY-VLINE,
183 'Units',
201 SY-VLINE,
222 SY-VLINE,
223 'Arrear',
244 SY-VLINE.
WRITE :/1(244) SY-ULINE.
SET LEFT SCROLL-BOUNDARY COLUMN 59.
* Start of Data Selection
START-OF-SELECTION.
SELECT GSBER GTEXT INTO TABLE GT_TGSBT FROM TGSBT
WHERE SPRAS = SY-LANGU.
SELECT IND_SECTOR TEXTLONG INTO TABLE GT_TB024
FROM TB024 WHERE SPRAS = SY-LANGU
AND ( ( IND_SECTOR >= '01' AND IND_SECTOR <= '55' )
OR ( IND_SECTOR = '57' OR IND_SECTOR = '58'
OR IND_SECTOR = '94' ) ).
SELECT SINGLE KTX INTO GV_MNTH_NAME FROM T247
WHERE MNR = P_BMNTH+5(2) AND SPRAS = SY-LANGU.
***master data selection
PERFORM CONSUMER_DATA_SELECTION.
*&--Get Meter Status Connected Load & MF for each installation
PERFORM OPERAND_DATA_SELECTION.
*&--Get the Demand corresponding to each Print documents selected
PERFORM BILLING_DATA_SELECTION.
*&--Get the arrears corresponding to each Print document selected
PERFORM ARREAR_DATA_SELECTION.
*&--To include Mannual R-15 into computerized R-15.
IF P_INCLUD = 'X'.
OPEN DATASET P_FILE FOR INPUT IN TEXT MODE ENCODING DEFAULT.
DO.
READ DATASET P_FILE INTO GWA_MANUAL_DATA.
IF SY-SUBRC <> 0.
EXIT.
ELSE.
APPEND GWA_MANUAL_DATA TO GT_MANUAL_DATA.
ENDIF.
ENDDO.
CLOSE DATASET P_FILE.
DELETE DATASET P_FILE.
ENDIF.
END-OF-SELECTION.
* End of data Selection
* Start of Data Processing
PERFORM FINAL_TABLE_PREPARE.
PERFORM FINAL_OUTPUT_PREPARE.
PERFORM FINAL_OUTPUT_DISPLAY.
* End of Data Processing
PERFORM FREE_MEMORY.
*& Form master_data_selection
* text
* --> p1 text
* <-- p2 text
FORM CONSUMER_DATA_SELECTION .
DATA: LV_MAX_DAYS TYPE I,
LV_LAST_DAY(2) TYPE C,
LV_IMONTH TYPE I,
LV_IYEAR TYPE I,
LV_BMNTH TYPE ZERDK_ERCHC-V_ABRMENGE,
LV_BYEAR TYPE ZERDK_ERCHC-EZ_ABRMENGE,
*&----Temporary tables for global internal tables.
LT_DBERCHZ1_TEMP LIKE TABLE OF GWA_DBERCHZ1,
LWA_DBERCHZ1_TEMP LIKE GWA_DBERCHZ1,
LT_ERCH LIKE TABLE OF GWA_ERCH,
LWA_ERCH LIKE GWA_ERCH,
LT_EVER LIKE TABLE OF GWA_EVER.
*DATA: lt_ever_fkkvkp like gwa_ever_eanlh_fkkvkp occurs 0.
LV_IMONTH = P_BMNTH+5(2).
LV_IYEAR = P_BMNTH(4).
LV_BMNTH = P_BMNTH+5(2).
LV_BYEAR = P_BMNTH(4).
CALL FUNCTION 'RTP_US_API_MAX_DAYS_IN_MONTH'
EXPORTING
I_DATE_MONTH = LV_IMONTH
I_DATE_YEAR = LV_IYEAR
IMPORTING
E_MAX_DAYS = LV_MAX_DAYS.
LV_LAST_DAY = LV_MAX_DAYS.
CONCATENATE P_BMNTH(4) P_BMNTH+5(2) LV_LAST_DAY INTO GV_HIGHDATE.
IF SO_GPART[] IS INITIAL.
SELECT VKONTO ANLAGE ABRSPERR
INTO TABLE GT_EVER
FROM EVER
WHERE GSBER IN SO_GSBER
AND COKEY IN SO_COKEY
AND BUKRS = 'CSEB'
AND SPARTE = '01'
AND KOFIZ = '02'.
**get installation no from contract data and check biling class in eanlh
IF GT_EVER[] IS INITIAL.
MESSAGE 'No Business Partner exist for entered selection data' TYPE 'A'.
ENDIF.
IF NOT GT_EVER[] IS INITIAL.
SELECT VKONT KTOKL INTO TABLE GT_FKKVKP
FROM FKKVKP
FOR ALL ENTRIES IN GT_EVER
WHERE VKONT = GT_EVER-VKONT
AND GPART IN SO_GPART.
IF GT_FKKVKP[] IS INITIAL.
MESSAGE 'No Business Partner exist for entered Selection' TYPE 'A'.
ENDIF.
ENDIF.
ELSE.
SELECT VKONT KTOKL INTO TABLE GT_FKKVKP
FROM FKKVKP
WHERE GPART IN SO_GPART.
IF NOT GT_FKKVKP[] IS INITIAL.
SELECT VKONTO ANLAGE INTO TABLE GT_EVER
FROM EVER
FOR ALL ENTRIES IN GT_FKKVKP
WHERE VKONTO EQ GT_FKKVKP-VKONT
AND GSBER IN SO_GSBER
AND COKEY IN SO_COKEY
AND BUKRS EQ 'CSEB'
AND SPARTE EQ '01'
AND KOFIZ EQ '02'.
ENDIF.
ENDIF.
IF GT_EVER[] IS INITIAL AND GT_FKKVKP[] IS INITIAL.
MESSAGE 'No Business Partner exist for entered Selection' TYPE 'A'.
ENDIF.
SELECT ANLAGE BRANCHE INTO TABLE GT_EANLH
FROM EANLH
FOR ALL ENTRIES IN GT_EVER
WHERE ANLAGE EQ GT_EVER-ANLAGE
AND ABLEINH IN SO_MRU
AND AKLASSE EQ'0002'
AND AB <= GV_HIGHDATE
AND BIS => GV_HIGHDATE.
IF GT_EANLH[] IS INITIAL.
MESSAGE 'No Business Partner exist for entered Selection' TYPE 'A'.
ENDIF.
SORT : GT_EVER BY VKONT ANLAGE,
GT_FKKVKP BY VKONT,
GT_EANLH BY ANLAGE.
LOOP AT GT_EANLH INTO GWA_EANLH.
READ TABLE GT_EVER INTO GWA_EVER WITH KEY ANLAGE = GWA_EANLH-ANLAGE.
IF SY-SUBRC = 0.
READ TABLE GT_FKKVKP INTO GWA_FKKVKP
WITH KEY VKONT = GWA_EVER-VKONT.
IF SY-SUBRC = 0.
GWA_EVER_EANLH_FKKVKP-VKONT = GWA_EVER-VKONT.
GWA_EVER_EANLH_FKKVKP-ANLAGE = GWA_EVER-ANLAGE.
GWA_EVER_EANLH_FKKVKP-ABRSPERR = GWA_EVER-ABRSPERR.
GWA_EVER_EANLH_FKKVKP-BRANCHE = GWA_EANLH-BRANCHE.
GWA_EVER_EANLH_FKKVKP-KTOKL = GWA_FKKVKP-KTOKL.
APPEND GWA_EVER_EANLH_FKKVKP TO GT_EVER_EANLH_FKKVKP.
CLEAR GWA_EVER_EANLH_FKKVKP.
ENDIF.
ENDIF.
ENDLOOP.
IF GT_EVER_EANLH_FKKVKP[] IS INITIAL.
MESSAGE 'No Business Partner exist for Selection Data' TYPE 'A'.
ENDIF.
*&----get all the billdocuments for the busines partner's contract
*&----account
SELECT BELNR VKONT INTO TABLE GT_ERCH
FROM ERCH
FOR ALL ENTRIES IN GT_EVER_EANLH_FKKVKP
WHERE VKONT EQ GT_EVER_EANLH_FKKVKP-VKONT.
*&----get the BILL MONTH & BILL YEAR FOR THE BILLDOCUMENTS.
IF NOT GT_ERCH[] IS INITIAL.
SELECT BELNR EIN01 V_ABRMENGE INTO TABLE GT_DBERCHZ1
FROM DBERCHZ1
FOR ALL ENTRIES IN GT_ERCH
WHERE BELNR EQ GT_ERCH-BELNR
AND AKLASSE = '0002'
AND ( ( EIN01 = 'BILL_MNTH1'
AND V_ABRMENGE = P_BMNTH+5(2) )
OR ( EIN01 = 'BILL_YEAR1'
AND V_ABRMENGE = P_BMNTH(4) ) ).
*&---- GET THOSE BILL DOCUMENTS WHICH ARE FOR THE ENTERED BILL MONTH
IF NOT GT_DBERCHZ1[] IS INITIAL.
LOOP AT GT_DBERCHZ1 INTO GWA_DBERCHZ1 WHERE EIN01 = 'BILL_MNTH1'
AND V_ABRMENGE = P_BMNTH+5(2).
READ TABLE GT_DBERCHZ1 INTO LWA_DBERCHZ1_TEMP
WITH KEY BELNR = GWA_DBERCHZ1-BELNR EIN01 = 'BILL_YEAR1'
V_ABRMENGE = P_BMNTH(4).
IF SY-SUBRC = 0.
APPEND LWA_DBERCHZ1_TEMP TO LT_DBERCHZ1_TEMP.
CLEAR: LWA_DBERCHZ1_TEMP.
ENDIF.
ENDLOOP.
GT_DBERCHZ1[] = LT_DBERCHZ1_TEMP[].
ENDIF.
ENDIF.
*&---NOW FIND THE PRINT DOCUMENTS FOR THE SELECTED BILLDOCUMENTS.
IF NOT GT_DBERCHZ1[] IS INITIAL.
SELECT BELNR OPBEL BUDAT FROM ERCHC
INTO TABLE GT_ERCHC
FOR ALL ENTRIES IN GT_DBERCHZ1
WHERE BELNR = GT_DBERCHZ1-BELNR
AND INTOPBEL EQ SPACE
AND SIMULATED EQ SPACE
AND INVOICED EQ 'X'.
ENDIF.
IF NOT GT_ERCHC[] IS INITIAL.
LOOP AT GT_ERCHC INTO GWA_ERCHC.
READ TABLE GT_ERCH INTO GWA_ERCH WITH KEY BELNR = GWA_ERCHC-BELNR.
IF SY-SUBRC = 0.
APPEND GWA_ERCH TO LT_ERCH.
CLEAR GWA_ERCH.
ENDIF.
CLEAR GWA_ERCHC.
ENDLOOP.
ENDIF.
GT_ERCH[] = LT_ERCH[].
FREE: LT_ERCH, LT_DBERCHZ1_TEMP,LWA_DBERCHZ1_TEMP.
LOOP AT GT_EVER_EANLH_FKKVKP INTO GWA_EVER_EANLH_FKKVKP.
* READ TABLE gt_erdk_erchc INTO gwa_erdk_erchc
* WITH KEY vkont = gwa_ever_eanlh_fkkvkp-vkont.
READ TABLE GT_ERCH INTO GWA_ERCH
WITH KEY VKONT = GWA_EVER_EANLH_FKKVKP-VKONT.
IF SY-SUBRC <> 0.
IF GWA_EVER_EANLH_FKKVKP-ABRSPERR = SPACE.
GWA_EVER_EANLH_FKKVKP-ABRSPERR = '01'.
MODIFY GT_EVER_EANLH_FKKVKP FROM GWA_EVER_EANLH_FKKVKP
TRANSPORTING ABRSPERR.
APPEND GWA_EVER_EANLH_FKKVKP TO GT_EVER_EANLH_FKKVKP_INACT.
ENDIF.
ELSE.
IF GWA_EVER_EANLH_FKKVKP-ABRSPERR <> SPACE.
GWA_EVER_EANLH_FKKVKP-ABRSPERR = SPACE.
MODIFY GT_EVER_EANLH_FKKVKP FROM GWA_EVER_EANLH_FKKVKP
TRANSPORTING ABRSPERR.
ENDIF.
ENDIF.
CLEAR GWA_ERCH.
ENDLOOP.
REFRESH GT_TECOKT[].
IF NOT SO_COKEY[] IS INITIAL.
SELECT COKEY LTEXT INTO TABLE GT_TECOKT
FROM TECOKT
WHERE COKEY IN SO_COKEY
AND SPRAS = SY-LANGU .
* %_HINTS ORACLE '("TECOKT","TECOKT~1")'.
ENDIF.
IF NOT SO_MRU[] IS INITIAL.
SELECT TERMSCHL TERMTEXT INTO TABLE GT_TE422
FROM TE422
WHERE TERMSCHL IN SO_MRU.
ENDIF.
*FREE lt_ever_fkkvkp[].
ENDFORM. " consumer_data_selection
*& Form Operand_data_selection
* text
* --> p1 text
* <-- p2 text
FORM OPERAND_DATA_SELECTION .
DATA: LT_EVER_EANLH_FKKVKP_ACT LIKE TABLE OF GWA_EVER_EANLH_FKKVKP.
* SORT gt_ever_eanlh_fkkvkp BY vkont.
CHECK NOT GT_EVER_EANLH_FKKVKP[] IS INITIAL.
**now depending upon the billing month check the time slice date
**the last date of the billing month or the range of billing month
*should fall in between the time slice of the installation
** billing month to is space
**now select operands for processed installation
LT_EVER_EANLH_FKKVKP_ACT[] = GT_EVER_EANLH_FKKVKP[].
DELETE LT_EVER_EANLH_FKKVKP_ACT WHERE ABRSPERR NE SPACE.
IF NOT LT_EVER_EANLH_FKKVKP_ACT[] IS INITIAL.
SELECT ANLAGE OPERAND WERT1
FROM ETTIFN
INTO TABLE GT_ETTIFN
FOR ALL ENTRIES IN LT_EVER_EANLH_FKKVKP_ACT
WHERE ANLAGE = LT_EVER_EANLH_FKKVKP_ACT-ANLAGE
AND OPERAND IN ('MTR_STS','CONN_LOAD','LOAD_CODE','KWH_MF')
AND ( AB <= GV_HIGHDATE AND BIS >= GV_HIGHDATE ).
* %_HINTS ORACLE '("ETTIFN","ETTIFN~003")'.
ENDIF.
ENDFORM. " Operand_data_selection
*& Form billing_data_selection
*&------------------------------Hi,
Please do run time analysis as Rob correctly mentioned or do SQL trace(ST05) to find where the program is consuming more time.
Lanka -
Problem when i try to modifi and save a query
Dear SDN Members
I have the follow error when I try to save a query (after to modified a Variable)
- The system tried to insert a data record, even though a data record with the same primary key already exists
- An exception with the type CX_SY_OPEN_SQL_DB occurred, but was neither handled locally, nor declared in a RAISING clause
- Program error in class SAPMSSY1 method: UNCAUGHT_EXCEPTION
My BW version is BI 7.0
I went to TCODE ST22, and the dumps is the follow
Runtime Errors UNCAUGHT_EXCEPTION
Exception CX_SY_NO_HANDLER
Date and Time 23.05.2007 12:03:10
Short text
An exception occurred that was not caught.
What happened?
The exception 'CX_SY_NO_HANDLER' was raised, but it was not caught anywhere
along
the call hierarchy.
Since exceptions represent error situations and this error was not
adequately responded to, the running ABAP program
'CL_RSBOLAP_BICS_SERVICES======CP' has to be
terminated.
What can you do?
Note down which actions and inputs caused the error.
To process the problem further, contact you SAP system
administrator.
Using Transaction ST22 for ABAP Dump Analysis, you can look
at and manage termination messages, and you can also
keep them for a long time.
Error analysis
An exception occurred which is explained in detail below.
The exception, which is assigned to class 'CX_SY_NO_HANDLER', was not caught
and
therefore caused a runtime error.
The reason for the exception is:
An exception with the type CX_SY_OPEN_SQL_DB occurred, but was neither handled
locally, nor declared in a RAISING clause
The occurrence of the exception is closely related to the occurrence of
a previous exception "CX_SY_OPEN_SQL_DB", which was raised in the program
"SAPLRZD1",
specifically in line 148 of the (include) program "LRZD1U40".
The cause of the exception was:
The system tried to insert a data record, even though a data record with the
same primary key already exists
How to correct the error
If the error occures in a non-modified SAP program, you may be able to
find an interim solution in an SAP Note.
If you have access to SAP Notes, carry out a search with the following
keywords:
"UNCAUGHT_EXCEPTION" "CX_SY_NO_HANDLER"
"CL_RSBOLAP_BICS_SERVICES======CP" or "CL_RSBOLAP_BICS_SERVICES======CM003"
"HANDLE_UNCAUGHT_EXCEPTION"
If you cannot solve the problem yourself and want to send an error
notification to SAP, include the following information:
1. The description of the current problem (short dump)
To save the description, choose "System->List->Save->Local File
(Unconverted)".
2. Corresponding system log
Display the system log by calling transaction SM21.
Restrict the time interval to 10 minutes before and five minutes
after the short dump. Then choose "System->List->Save->Local File
(Unconverted)".
3. If the problem occurs in a problem of your own or a modified SAP
program: The source code of the program
In the editor, choose "Utilities->More
Utilities->Upload/Download->Download".
4. Details about the conditions under which the error occurred or which
actions and input led to the error.
System environment
SAP-Release 700
Application server... "ecedc05bwh02"
Network address...... "192.168.186.10"
Operating system..... "Windows NT"
Release.............. "5.2"
Hardware type........ "8x Intel 801586"
Character length.... 8 Bits
Pointer length....... 32 Bits
Work process number.. 0
Shortdump setting.... "full"
Database server... "ECEDC05BWH02"
Database type..... "ORACLE"
Database name..... "BWD"
Database user ID.. "SAPBWP"
Char.set.... "Spanish_Spain.1252"
SAP kernel....... 700
created (date)... "Apr 2 2006 23:01:26"
create on........ "NT 5.0 2195 Service Pack 4 x86 MS VC++ 13.10"
Database version. "OCI_10103_SHARE "
Patch level. 52
Patch text.. " "
Database............. "ORACLE 9.2.0.., ORACLE 10.1.0.., ORACLE 10.2.0.."
SAP database version. 700
Operating system..... "Windows NT 5.0, Windows NT 5.1, Windows NT 5.2"
Memory consumption
Roll.... 8112
EM...... 8382048
Heap.... 0
Page.... 16384
MM Used. 5467512
MM Free. 2913088
User and Transaction
Client.............. 100
User................ "ATOS"
Language Key........ "S"
Transaction......... " "
Program............. "CL_RSBOLAP_BICS_SERVICES======CP"
Screen.............. "SAPMSSY1 3004"
Screen Line......... 2
Information on caller of Remote Function Call (RFC):
System.............. "########"
Database Release.... 710
Kernel Release...... 710
Connection Type..... "E" (2=R/2, 3=ABAP System, E=Ext., R=Reg. Ext.)
Call Type........... "synchron and non-transactional (emode 0, imode 0)"
Inbound TID.........." "
Inbound Queue Name..." "
Outbound TID........." "
Outbound Queue Name.." "
Client.............. "###"
User................ "############"
Transaction......... " "
Call Program........."BExQueryDesignerStarter"
Function Module..... "RSZ_X_COMPONENT_SET_NEW"
Call Destination.... "<unknown>"
Source Server....... "clalinetzky2"
Source IP Address... "10.139.56.93"
Additional information on RFC logon:
Trusted Relationship " "
Logon Return Code... 0
Trusted Return Code. 0
Note: For releases < 4.0, information on the RFC caller are often
only partially available.
Information on where terminated
Termination occurred in the ABAP program "CL_RSBOLAP_BICS_SERVICES======CP" -
in "HANDLE_UNCAUGHT_EXCEPTION".
The main program was "SAPMSSY1 ".
In the source code you have the termination point in line 28
of the (Include) program "CL_RSBOLAP_BICS_SERVICES======CM003".
Source Code Extract
Line
SourceCde
1
METHOD handle_uncaught_exception.
2
3
data:
4
l_r_program_error TYPE REF TO cx_rsbolap_program_error.
5
data: lBExDebug type rs_bool.
6
GET PARAMETER ID 'BEXDEBUG' FIELD lBExDebug.
7
8
if lBExDebug = rs_c_true or CL_RSTT_TRACE=>GET_TRACEMODE_CURRENT_TRACE( ) = rstt0_c_tracem
9
Break-point for debugging, e.g. during running a trace
10
break-point. "#EC NOBREAK
11
endif.
12
Subcall?
13
if P_RFC_CALL_DEPTH > 1.
14
Forward the exception
15
subtract 1 from P_RFC_CALL_DEPTH.
16
DATA: l_r_x TYPE REF TO cx_no_check.
17
TRY.
18
l_r_x ?= i_r_exception.
19
CATCH cx_root.
20
CLEAR l_r_x.
21
ENDTRY.
22
23
IF l_r_x IS INITIAL.
24
RAISE EXCEPTION TYPE cx_rsr_propagate_x
25
EXPORTING
26
previous = i_r_exception.
27
ELSE.
>>>>>
RAISE EXCEPTION l_r_x.
29
ENDIF.
30
endif.
31
32
All exceptions should have been caugth -> X-Message
33
r_max_message_type = 'A'.
34
35
Wrap the exception in a bolap program error exception
36
CREATE OBJECT l_r_program_error
37
EXPORTING
38
context = 'UNCAUGHT_EXCEPTION'
39
previous = i_r_exception.
40
41
Notify the message handler
42
CALL FUNCTION 'RRMS_EXCEPTION_HANDLING'
43
EXPORTING
44
I_MSGTY = 'A'
45
i_r_exception = l_r_program_error.
46
47
ENDMETHOD.
Contents of system fields
Name
Val.
SY-SUBRC
0
SY-INDEX
52
SY-TABIX
0
SY-DBCNT
0
SY-FDPOS
1
SY-LSIND
0
SY-PAGNO
0
SY-LINNO
1
SY-COLNO
1
SY-PFKEY
SY-UCOMM
SY-TITLE
Control CPI-C y RFC
SY-MSGTY
SY-MSGID
SY-MSGNO
000
SY-MSGV1
SY-MSGV2
SY-MSGV3
SY-MSGV4
SY-MODNO
0
SY-DATUM
20070523
SY-UZEIT
120310
SY-XPROG
SAPCNVE
SY-XFORM
CONVERSION_EXIT
Active Calls/Events
No. Ty. Program Include Line
Name
5 METHOD CL_RSBOLAP_BICS_SERVICES======CP CL_RSBOLAP_BICS_SERVICES======CM003 28
CL_RSBOLAP_BICS_SERVICES=>HANDLE_UNCAUGHT_EXCEPTION
4 FUNCTION SAPLRZX0 LRZX0U52 908
RSZ_X_COMPONENT_SET_NEW
3 FORM SAPLRZX0 LRZX0U52 1
RSZ_X_COMPONENT_SET_NEW
2 FORM SAPMSSY1 SAPMSSY1 85
REMOTE_FUNCTION_CALL
1 MODULE (PBO) SAPMSSY1 SAPMSSY1 30
%_RFC_START
Chosen variables
Name
Val.
No. 5 Ty. METHOD
Name CL_RSBOLAP_BICS_SERVICES=>HANDLE_UNCAUGHT_EXCEPTION
I_R_EXCEPTION
|
| 1000E000 |
| A0005000 |
| R_MAX_MESSAGE_TYPE |
| |
| 2 |
| 0 |
| L_R_X |
|
1000E000
A0005000
SYST-REPID
CL_RSBOLAP_BICS_SERVICES======CP
4455544445544455545544453333334522222222
3CF232FC10F2933F35269353DDDDDD3000000000
%_SPACE
2
0
%_DUMMY$$
2222
0000
%_ARCHIVE
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
RSJOBINFO
00000000000000 ####
222222222222222222222222222222223333333333333322222222222222222222222222222222220000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000
SY
4###########################################################################y#################
3000000000000000000000000000000000000000000000000000000000000000000000000000700000000000000000
400000000000800000000000A000000000000000000010001000000010000000000000000000900000000000000000
%_EXCP
F0000000
F0000000
SY-REPID
CL_RSBOLAP_BICS_SERVICES======CP
4455544445544455545544453333334522222222
3CF232FC10F2933F35269353DDDDDD3000000000
SPACE
2
0
L_R_PROGRAM_ERROR
|
| F0000000 |
| F0000000 |
| No. 4 Ty. FUNCTION |
| Name RSZ_X_COMPONENT_SET_NEW |
| I_COMPUID |
| F3IH9GRA1X9X7DRPIYFPE1QP7 |
| 4344345435353455454543553 |
| 6398972118987420996051107 |
| I_COPY_MODE |
| |
| 2 |
| 0 |
| I_LANGUAGE |
| S |
| 5 |
| 3 |
| I_NODE |
| 0000000000 |
| 3333333333 |
| 0000000000 |
| I_NO_TRANSPORT |
| |
| 2 |
| 0 |
| I_OBJVERS |
| A |
| 4 |
| 1 |
| I_QD_VERSION |
| 700 |
| 33322 |
| 70000 |
| I_ROLE |
| |
| 222222222222222222222222222222 |
| 000000000000000000000000000000 |
| E_GENUNIID |
| |
| 2222222222222222222222222 |
| 0000000000000000000000000 |
| E_SUBRC |
| 0 |
| 0000 |
| 0000 |
| C_T_CALC[] |
| Table IT_3889[5x158] |
| FUNCTION-POOL=RZX0FORM=RSZ_X_COMPONENT_SET_NEWDATA=%_%_C_T_CALC |
| Table reference: 56 |
| TABH+ 0(20) = 28DD0EA0E81518A00000000038000000310F0000 |
| TABH+ 20(20) = 050000009E000000FFFFFFFF04CB000058150000 |
| TABH+ 40( 8) = 10000000C1248101 |
| store = 0x28DD0EA0 |
| ext1 = 0xE81518A0 |
| shmId = 0 (0x00000000) |
| id = 56 (0x38000000) |
| label = 3889 (0x310F0000) |
| fill = 5 (0x05000000) |
| leng = 158 (0x9E000000) |
| loop = -1 (0xFFFFFFFF) |
| xtyp = TYPE#000087 |
| occu = 16 (0x10000000) |
| access = 1 (ItAccessStandard) |
| idxKind = 0 (ItIndexNone) |
| uniKind = 2 (ItUniqueNon) |
| keyKind = 1 (default) |
| cmpMode = 2 (cmpSingleMcmpR) |
| occu0 = 1 |
| groupCntl = 0 |
| rfc = 1 |
| unShareable = 0 |
| mightBeShared = 0 |
| sharedWithShmTab = 0 |
| isShmLockId = 0 |
| gcKind = 0 |
| isUsed = 1 |
| isCtfyAble = 1 |
| >>>>> Shareable Table Header Data <<<<< |
| tabi = 0x481839A0 |
| pgHook = 0x00000000 |
| idxPtr = 0x00000000 |
| shmTabhSet = 0x00000000 |
| id = 2911 (0x5F0B0000) |
| refCount = 0 (0x00000000) |
| tstRefCount = 0 (0x00000000) |
| lineAdmin = 16 (0x10000000) |
| lineAlloc = 16 (0x10000000) |
| shmVersId = 0 (0x00000000) |
| shmRefCount = 1 (0x01000000) |
| >>>>> 1st level extension part <<<<< |
| regHook = 0x00000000 |
| collHook = 0x00000000 |
| ext2 = 0xF0B70EA0 |
| >>>>> 2nd level extension part <<<<< |
| tabhBack = 0x40F60EA0 |
| delta_head = 0100000065000000E40000002B00000004CB0000901500009E0000000100000005000000 |
| pb_func = 0x00000000 |
| pb_handle = 0x00000000 |
| C_T_CELL[] |
| Table IT_3890[0x76] |
| FUNCTION-POOL=RZX0FORM=RSZ_X_COMPONENT_SET_NEWDATA=%_%_C_T_CELL |
| Table reference: 52 |
| TABH+ 0(20) = 0000000028A51EA00000000034000000320F0000 |
| TABH+ 20(20) = 000000004C000000FFFFFFFF04CB0000C8150000 |
| TABH+ 40( 8) = 10000000C1248101 |
| store = 0x00000000 |
| ext1 = 0x28A51EA0 |
| shmId = 0 (0x00000000) |
| id = 52 (0x34000000) |
| label = 3890 (0x320F0000) |
| fill = 0 (0x00000000) |
| leng = 76 (0x4C000000) |
| loop = -1 (0xFFFFFFFF) |
| xtyp = TYPE#000089 |
| occu = 16 (0x10000000) |
| access = 1 (ItAccessStandard) |
| idxKind = 0 (ItIndexNone) |
| uniKind = 2 (ItUniqueNon) |
| keyKind = 1 (default) |
| cmpMode = 2 (cmpSingleMcmpR) |
| occu0 = 1 |
| groupCntl = 0 |
| rfc = 1 |
| unShareable = 0 |
| mightBeShared = 0 |
| sharedWithShmTab = 0 |
| isShmLockId = 0 |
| gcKind = 0 |
| isUsed = 1 |
| isCtfyAble = 1 |
| >>>>> Shareable Table Header Data <<<<< |
| tabi = Not allocated |
| pghook = Not allocated |
| idxPtr = Not allocated |
| shmTabhSet = Not allocated |
| id = Not allocated |
| refCount = Not allocated |
| tstRefCount = Not allocated |
| lineAdmin = Not allocated |
| lineAlloc = Not allocated |
| shmVersId = Not allocated |
| shmRefCount = Not allocated |
| shmIsReadOnly = Not allocated |
| >>>>> 1st level extension part <<<<< |
| regHook = 0x00000000 |
| collHook = 0x00000000 |
| ext2 = 0x68DA0EA0 |
| >>>>> 2nd level extension part <<<<< |
| tabhBack = 0x38EA1DA0 |
| delta_head = 0100000066000000E60000002900000004CB0000001600004C0000000100000005000000 |
| pb_func = 0x00000000 |
| pb_handle = 0x00000000 |
| C_T_COMPDIR[] |
| Table IT_3891[7x169] |
| FUNCTION-POOL=RZX0FORM=RSZ_X_COMPONENT_SET_NEWDATA=%_%_C_T_COMPDIR |
| Table reference: 54 |
| TABH+ 0(20) = D8D80EA048A51EA00000000036000000330F0000 |
| TABH+ 20(20) = 07000000A9000000FFFFFFFF04CB000098130000 |
| TABH+ 40( 8) = 10000000C1248501 |
| store = 0xD8D80EA0 |
| ext1 = 0x48A51EA0 |
| shmId = 0 (0x00000000) |
| id = 54 (0x36000000) |
| label = 3891 (0x330F0000) |
| fill = 7 (0x07000000) |
| leng = 169 (0xA9000000) |
| loop = -1 (0xFFFFFFFF) |
| xtyp = TYPE#000079 |
| occu = 16 (0x10000000) |
| access = 1 (ItAccessStandard) |
| idxKind = 0 (ItIndexNone) |
| uniKind = 2 (ItUniqueNon) |
| keyKind = 1 (default) |
| cmpMode = 2 (cmpSingleMcmpR) |
| occu0 = 1 |
| groupCntl = 0 |
| rfc = 1 |
| unShareable = 0 |
| mightBeShared = 1 |
| sharedWithShmTab = 0 |
| isShmLockId = 0 |
| gcKind = 0 |
| isUsed = 1 |
| isCtfyAble = 1 |
| >>>>> Shareable Table Header Data <<<<< |
| tabi = 0x382239A0 |
| pgHook = 0x00000000 |
| idxPtr = 0x00000000 |
| shmTabhSet = 0x00000000 |
| id = 2912 (0x600B0000) |
| refCount = 0 (0x00000000) |
| tstRefCount = 0 (0x00000000) |
| lineAdmin = 16 (0x10000000) |
| lineAlloc = 16 (0x10000000) |
| shmVersId = 0 (0x00000000) |
| shmRefCount = 2 (0x02000000) |
| >>>>> 1st level extension part <<<<< |
| regHook = 0x00000000 |
| collHook = 0x00000000 |
| ext2 = 0xB8C223A0 |
| >>>>> 2nd level extension part <<<<< |
| tabhBack = 0x30B50EA0 |
| delta_head = 0100000067000000E70000002800000004CB0000D0130000A90000000100000005000000 |
| pb_func = 0x00000000 |
| pb_handle = 0x00000000 |
| C_T_COMPIC[] |
| Table IT_3892[5x81] |
| FUNCTION-POOL=RZX0FORM=RSZ_X_COMPONENT_SET_NEWDATA=%_%_C_T_COMPIC |
| Table reference: 49 |
| TABH+ 0(20) = 80D90EA060D90EA00000000031000000340F0000 |
| TABH+ 20(20) = 0500000051000000FFFFFFFF04CB000008140000 |
| TABH+ 40( 8) = 10000000C1248101 |
| store = 0x80D90EA0 |
| ext1 = 0x60D90EA0 |
| shmId = 0 (0x00000000) |
| id = 49 (0x31000000) |
| label = 3892 (0x340F0000) |
| fill = 5 (0x05000000) |
| leng = 81 (0x51000000) |
| loop = -1 (0xFFFFFFFF) |
| xtyp = TYPE#000081 |
| occu = 16 (0x10000000) |
| access = 1 (ItAccessStandard) |
| idxKind = 0 (ItIndexNone) |
| uniKind = 2 (ItUniqueNon) |
| keyKind = 1 (default) |
| cmpMode = 2 (cmpSingleMcmpR) |
| occu0 = 1 |
| groupCntl = 0 |
| rfc = 1 |
| unShareable = 0 |
| mightBeShared = 0 |
| sharedWithShmTab = 0 |
| isShmLockId = 0 |
| gcKind = 0 |
| isUsed = 1 |
| isCtfyAble = 1 |
| >>>>> Shareable Table Header Data <<<<< |
| tabi = 0x409A1EA0 |
| pgHook = 0x00000000 |
| idxPtr = 0x00000000 |
| shmTabhSet = 0x00000000 |
| id = 2913 (0x610B0000) |
| refCount = 0 (0x00000000) |
| tstRefCount = 0 (0x00000000) |
| lineAdmin = 16 (0x10000000) |
| lineAlloc = 16 (0x10000000) |
| shmVersId = 0 (0x00000000) |
| shmRefCount = 1 (0x01000000) |
| >>>>> 1st level extension part <<<<< |
| regHook = 0x00000000 |
| collHook = 0x00000000 |
| ext2 = 0x18D90EA0 |
| >>>>> 2nd level extension part <<<<< |
| tabhBack = 0xD8B21EA0 |
| delta_head = 0100000068000000E50000002A00000004CB000040140000510000000100000005000000 |
| pb_func = 0x00000000 |
| pb_handle = 0x00000000 |
| C_T_ELTATTR[] |
| Table IT_3893[0x124] |
| FUNCTION-POOL=RZX0FORM=RSZ_X_COMPONENT_SET_NEWDATA=%_%_C_T_ELTATTR |
| Table reference: 332 |
| TABH+ 0(20) = 0000000008DA0EA0000000004C010000350F0000 |
| TABH+ 20(20) = 000000007C000000FFFFFFFF04CB0000B8120000 |
| TABH+ 40( 8) = 10000000C1248101 |
| store = 0x00000000 |
| ext1 = 0x08DA0EA0 |
| shmId = 0 (0x00000000) |
| id = 332 (0x4C010000) |
| label = 3893 (0x350F0000) |
| fill = 0 (0x00000000) |
| leng = 124 (0x7C000000) |
| loop = -1 (0xFFFFFFFF) |
| xtyp = TYPE#000075 |
| occu = 16 (0x10000000) |
| access = 1 (ItAccessStandard) |
| idxKind = 0 (ItIndexNone) |
| uniKind = 2 (ItUniqueNon) |
| keyKind = 1 (default) |
| cmpMode = 2 (cmpSingleMcmpR) |
| occu0 = 1 |
| groupCntl = 0 |
| rfc = 1 |
| unShareable = 0 |
| mightBeShared = 0 |
| sharedWithShmTab = 0 |
| isShmLockId = 0 |
| gcKind = 0 |
| isUsed = 1 |
| isCtfyAble = 1 |
| >>>>> Shareable Table Header Data <<<<< |
| tabi = Not allocated |
| pghook = Not allocated |
| idxPtr = Not allocated |
| shmTabhSet = Not allocated |
| id = Not allocated |
| refCount = Not allocated |
| tstRefCount = Not allocated |
| lineAdmin = Not allocated |
| lineAlloc = Not allocated |
| shmVersId = Not allocated |
| shmRefCount = Not allocated |
| shmIsReadOnly = Not allocated |
| >>>>> 1st level extension part <<<<< |
| regHook = 0x00000000 |
| collHook = 0x00000000 |
| ext2 = 0xC0D90EA0 |
| >>>>> 2nd level extension part <<<<< |
| tabhBack = 0x101520A0 |
| delta_head = 0100000069000000E30000002C00000004CB0000F01200007C0000000100000005000000 |
| pb_func = 0x00000000 |
| pb_handle = 0x00000000 |
| C_T_ELTDIR[] |
| Table IT_3894[98x203] |
| FUNCTION-POOL=RZX0FORM=RSZ_X_COMPONENT_SET_NEWDATA=%_%_C_T_ELTDIR |
| Table reference: 339 |
| TABH+ 0(20) = 48A01EA0A89F1EA00000000053010000360F0000 |
| TABH+ 20(20) = 62000000CB000000FFFFFFFF04CB0000F8100000 |
| TABH+ 40( 8) = 10000000C1248101 |
| store = 0x48A01EA0 |
| ext1 = 0xA89F1EA0 |
| shmId = 0 (0x00000000) |
| id = 339 (0x53010000) |
| label = 3894 (0x360F0000) |
| fill = 98 (0x62000000) |
| leng = 203 (0xCB000000) |
| loop = -1 (0xFFFFFFFF) |
| xtyp = TYPE#000067 |
| occu = 16 (0x10000000) |
| access = 1 (ItAccessStandard) |
| idxKind = 0 (ItIndexNone) |
| uniKind = 2 (ItUniqueNon) |
| keyKind = 1 (default) |
| cmpMode = 2 (cmpSingleMcmpR) |
| occu0 = 1 |
| groupCntl = 0 |
| rfc = 1 |
| unShareable = 0 |
| mightBeShared = 0 |
| sharedWithShmTab = 0 |
| isShmLockId = 0 |
| gcKind = 0 |
| isUsed = 1 |
| isCtfyAble = 1 |
| >>>>> Shareable Table Header Data <<<<< |
| tabi = 0x883C39A0 |
| pgHook = 0x88A01EA0 |
| idxPtr = 0x00000000 |
| shmTabhSet = 0x00000000 |
| id = 2915 (0x630B0000) |
| refCount = 0 (0x00000000) |
| tstRefCount = 0 (0x00000000) |
| lineAdmin = 112 (0x70000000) |
| lineAlloc = 112 (0x70000000) |
| shmVersId = 0 (0x00000000) |
| shmRefCount = 1 (0x01000000) |
| >>>>> 1st level extension part <<<<< |
| regHook = 0x00000000 |
| collHook = 0x00000000 |
| ext2 = 0x609F1EA0 |
| >>>>> 2nd level extension part <<<<< |
| tabhBack = 0xC01620A0 |
| delta_head = 010000006A000000E80000002700000004CB000030110000CB0000000100000005000000 |
| pb_func = 0x00000000 |
| pb_handle = 0x00000000 |
| C_T_ELTPRIO[] |
| Table IT_3895[77x150] |
| FUNCTION-POOL=RZX0FORM=RSZ_X_COMPONENT_SET_NEWDATA=%_%_C_T_ELTPRIO |
| Table reference: 341 |
| TABH+ 0(20) = 30A11EA010A01EA00000000055010000370F0000 |
| TABH+ 20(20) = 4D00000096000000FFFFFFFF04CB000048120000 |
| TABH+ 40( 8) = 10000000C1248101 |
| store = 0x30A11EA0 |
| ext1 = 0x10A01EA0 |
| shmId = 0 (0x00000000) |
| id = 341 (0x55010000) |
| label = 3895 (0x370F0000) |
| fill = 77 (0x4D000000) |
| leng = 150 (0x96000000) |
| loop = -1 (0xFFFFFFFF) |
| xtyp = TYPE#000073 |
| occu = 16 (0x10000000) |
| access = 1 (ItAccessStandard) |
| idxKind = 0 (ItIndexNone) |
| uniKind = 2 (ItUniqueNon) |
| keyKind = 1 (default) |
| cmpMode = 2 (cmpSingleMcmpR) |
| occu0 = 1 |
| groupCntl = 0 |
| rfc = 1 |
| unShareable = 0 |
| mightBeShared = 0 |
| sharedWithShmTab = 0 |
| isShmLockId = 0 |
| gcKind = 0 |
| isUsed = 1 |
| isCtfyAble = 1 |
| >>>>> Shareable Table Header Data <<<<< |
| tabi = 0x889539A0 |
| pgHook = 0x70A11EA0 |
| idxPtr = 0x00000000 |
| shmTabhSet = 0x00000000 |
| id = 2917 (0x650B0000) |
| refCount = 0 (0x00000000) |
| tstRefCount = 0 (0x00000000) |
| lineAdmin = 112 (0x70000000) |
| lineAlloc = 112 (0x70000000) |
| shmVersId = 0 (0x00000000) |
| shmRefCount = 1 (0x01000000) |
| >>>>> 1st level extension part <<<<< |
| regHook = 0x00000000 |
| collHook = 0x00000000 |
| ext2 = 0xC89F1EA0 |
| >>>>> 2nd level extension part <<<<< |
| tabhBack = 0xC01720A0 |
| delta_head = 010000006B000000E20000002D00000004CB000080120000960000000100000005000000 |
| pb_func = 0x00000000 |
| pb_handle = 0x00000000 |
| C_T_ELTPROP[] |
| Table IT_3896[98x695] |
| FUNCTION-POOL=RZX0FORM=RSZ_X_COMPONENT_SET_NEWDATA=%_%_C_T_ELTPROP |
| Table reference: 344 |
| TABH+ 0(20) = 18A21EA0C8B139A00000000058010000380F0000 |
| TABH+ 20(20) = 62000000B7020000FFFFFFFF04CB0000D8110000 |
| TABH+ 40( 8) = 10000000C1248101 |
| store = 0x18A21EA0 |
| ext1 = 0xC8B139A0 |
| shmId = 0 (0x00000000) |
| id = 344 (0x58010000) |
| label = 3896 (0x380F0000) |
| fill = 98 (0x62000000) |
| leng = 695 (0xB7020000) |
| loop = -1 (0xFFFFFFFF) |
| xtyp = TYPE#000071 |
| occu = 16 (0x10000000) |
| access = 1 (ItAccessStandard) |
| idxKind = 0 (ItIndexNone) |
| uniKind = 2 (ItUniqueNon) |
| keyKind = 1 (default) |
| cmpMode = 2 (cmpSingleMcmpR) |
| occu0 = 1 |
| groupCntl = 0 |
| rfc = 1 |
| unShareable = 0 |
| mightBeShared = 0 |
| sharedWithShmTab = 0 |
| isShmLockId = 0 |
| gcKind = 0 |
| isUsed = 1 |
| isCtfyAble = 1 |
| >>>>> Shareable Table Header Data <<<<< |
| tabi = 0x48FC39A0 |
| pgHook = 0x58A21EA0 |
| idxPtr = 0x00000000 |
| shmTabhSet = 0x00000000 |
| id = 2919 (0x670B0000) |
| refCount = 0 (0x00000000) |
| tstRefCount = 0 (0x00000000) |
| lineAdmin = 128 (0x80000000) |
| lineAlloc = 112 (0x70000000) |
| shmVersId = 0 (0x00000000) |
| shmRefCount = 1 (0x01000000) |
| >>>>> 1st level extension part <<<<< |
| regHook = 0x00000000 |
| collHook = 0x00000000 |
| ext2 = 0xB0A01EA0 |
| >>>>> 2nd level extension part <<<<< |
| tabhBack = 0x28DA0EA0 |
| delta_head = 010000006C000000E10000002E00000004CB000010120000B70200000100000005000000 |
| pb_func = 0x00000000 |
| pb_handle = 0x00000000 |
| C_T_ELTTXT[] |
| Table IT_3902[0x111] |
| FUNCTION-POOL=RZX0FORM=RSZ_X_COMPONENT_SET_NEWDATA=%_%_C_T_ELTTXT |
| Table reference: 349 |
| TABH+ 0(20) = 0000000068F73AA0000000005D0100003E0F0000 |
| TABH+ 20(20) = 000000006F000000FFFFFFFF04CB000018170000 |
| TABH+ 40( 8) = 10000000C1248001 |
| store = 0x00000000 |
| ext1 = 0x68F73AA0 |
| shmId = 0 (0x00000000) |
| id = 349 (0x5D010000) |
| label = 3902 (0x3E0F0000) |
| fill = 0 (0x00000000) |
| leng = 111 (0x6F000000) |
| loop = -1 (0xFFFFFFFF) |
| xtyp = TYPE#000095 |
| occu = 16 (0x10000000) |
| access = 1 (ItAccessStandard) |
| idxKind = 0 (ItIndexNone) |
| uniKind = 2 (ItUniqueNon) |
| keyKind = 1 (default) |
| cmpMode = 2 (cmpSingleMcmpR) |
| occu0 = 1 |
| groupCntl = 0 |
| rfc = 0 |
| unShareable = 0 |
| mightBeShared = 0 |
| sharedWithShmTab = 0 |
| isShmLockId = 0 |
| gcKind = 0 |
| isUsed = 1 |
| isCtfyAble = 1 |
| >>>>> Shareable Table Header Data <<<<< |
| tabi = Not allocated |
| pghook = Not allocated |
| idxPtr = Not allocated |
| shmTabhSet = Not allocated |
| id = Not allocated |
| refCount = Not allocated |
| tstRefCount = Not allocated |
| lineAdmin = Not allocated |
| lineAlloc = Not allocated |
| shmVersId = Not allocated |
| shmRefCount = Not allocated |
| shmIsReadOnly = Not allocated |
| >>>>> 1st level extension part <<<<< |
| regHook = 0x00000000 |
| collHook = 0x00000000 |
| ext2 = 0x20F73AA0 |
| >>>>> 2nd level extension part <<<<< |
| tabhBack = 0xE0F63AA0 |
| delta_head = 000000000000000000000000000000000000000000000000000000000000000000000000 |
| pb_func = 0x00000000 |
| pb_handle = 0x00000000 |
| C_T_ELTXREF[] |
| Table IT_3897[188x74] |
| FUNCTION-POOL=RZX0FORM=RSZ_X_COMPONENT_SET_NEWDATA=%_%_C_T_ELTXREF |
| Table reference: 340 |
| TABH+ 0(20) = 18A31EA0F8A01EA00000000054010000390F0000 |
| TABH+ 20(20) = BC0000004A000000FFFFFFFF04CB000028130000 |
| TABH+ 40( 8) = 10000000C1248101 |
| store = 0x18A31EA0 |
| ext1 = 0xF8A01EA0 |
| shmId = 0 (0x00000000) |
| id = 340 (0x54010000) |
| label = 3897 (0x390F0000) |
| fill = 188 (0xBC000000) |
| leng = 74 (0x4A000000) |
| loop = -1 (0xFFFFFFFF) |
| xtyp = TYPE#000077 |
| occu = 16 (0x10000000) |
| access = 1 (ItAccessStandard) |
| idxKind = 0 (ItIndexNone) |
| uniKind = 2 (ItUniqueNon) |
| keyKind = 1 (default) |
| cmpMode = 2 (cmpSingleMcmpR) |
| occu0 = 1 |
| groupCntl = 0 |
| rfc = 1 |
| unShareable = 0 |
| mightBeShared = 0 |
| sharedWithShmTab = 0 |
| isShmLockId = 0 |
| gcKind = 0 |
| isUsed = 1 |
| isCtfyAble = 1 |
| >>>>> Shareable Table Header Data <<<<< |
| tabi = 0xC8D53AA0 |
| pgHook = 0x58A31EA0 |
| idxPtr = 0x00000000 |
| shmTabhSet = 0x00000000 |
| id = 2921 (0x690B0000) |
| refCount = 0 (0x00000000) |
| tstRefCount = 0 (0x00000000) |
| lineAdmin = 432 (0xB0010000) |
| lineAlloc = 304 (0x30010000) |
| shmVersId = 0 (0x00000000) |
| shmRefCount = 1 (0x01000000) |
| >>>>> 1st level extension part <<<<< |
| regHook = 0x00000000 |
| collHook = 0x00000000 |
| ext2 = 0x98A11EA0 |
| >>>>> 2nd level extension part <<<<< |
| tabhBack = 0x801720A0 |
| delta_head = 010000006D000000EA0000002500000004CB0000601300004A0000000100000005000000 |
| pb_func = 0x00000000 |
| pb_handle = 0x00000000 |
| C_T_RANGE[] |
| Table IT_3898[258x579] |
| FUNCTION-POOL=RZX0FORM=RSZ_X_COMPONENT_SET_NEWDATA=%_%_C_T_RANGE |
| Table reference: 345 |
| TABH+ 0(20) = B8F33AA088A31EA000000000590100003A0F0000 |
| TABH+ 20(20) = 0201000043020000FFFFFFFF04CB0000E8140000 |
| TABH+ 40( 8) = 10000000C1248101 |
| store = 0xB8F33AA0 |
| ext1 = 0x88A31EA0 |
| shmId = 0 (0x00000000) |
| id = 345 (0x59010000) |
| label = 3898 (0x3A0F0000) |
| fill = 258 (0x02010000) |
| leng = 579 (0x43020000) |
| loop = -1 (0xFFFFFFFF) |
| xtyp = TYPE#000085 |
| occu = 16 (0x10000000) |
| access = 1 (ItAccessStandard) |
| idxKind = 0 (ItIndexNone) |
| uniKind = 2 (ItUniqueNon) |
| keyKind = 1 (default) |
| cmpMode = 2 (cmpSingleMcmpR) |
| occu0 = 1 |
| groupCntl = 0 |
| rfc = 1 |
| unShareable = 0 |
| mightBeShared = 0 |
| sharedWithShmTab = 0 |
| isShmLockId = 0 |
| gcKind = 0 |
| isUsed = 1 |
| isCtfyAble = 1 |
| >>>>> Shareable Table Header Data <<<<< |
| tabi = 0x580140A0 |
| pgHook = 0xF8F33AA0 |
| idxPtr = 0x00000000 |
| shmTabhSet = 0x00000000 |
| id = 2923 (0x6B0B0000) |
| refCount = 0 (0x00000000) |
| tstRefCount = 0 (0x00000000) |
| lineAdmin = 512 (0x00020000) |
| lineAlloc = 272 (0x10010000) |
| shmVersId = 0 (0x00000000) |
| shmRefCount = 1 (0x01000000) |
| >>>>> 1st level extension part <<<<< |
| regHook = 0x00000000 |
| collHook = 0x00000000 |
| ext2 = 0xD82C39A0 |
| >>>>> 2nd level extension part <<<<< |
| tabhBack = 0x98A21EA0 |
| delta_head = 010000006E000000E90000002600000004CB000020150000430200000100000005000000 |
| pb_func = 0x00000000 |
| pb_handle = 0x00000000 |
| C_T_SELECT[] |
| Table IT_3899[239x116] |
| FUNCTION-POOL=RZX0FORM=RSZ_X_COMPONENT_SET_NEWDATA=%_%_C_T_SELECT |
| Table reference: 346 |
| TABH+ 0(20) = 20F53AA0E0A11EA0000000005A0100003B0F0000 |
| TABH+ 20(20) = EF00000074000000FFFFFFFF04CB000078140000 |
| TABH+ 40( 8) = 10000000C1248101 |
| store = 0x20F53AA0 |
| ext1 = 0xE0A11EA0 |
| shmId = 0 (0x00000000) |
| id = 346 (0x5A010000) |
| label = 3899 (0x3B0F0000) |
| fill = 239 (0xEF000000) |
| leng = 116 (0x74000000) |
| loop = -1 (0xFFFFFFFF) |
| xtyp = TYPE#000083 |
| occu = 16 (0x10000000) |
| access = 1 (ItAccessStandard) |
| idxKind = 0 (ItIndexNone) |
| uniKind = 2 (ItUniqueNon) |
| keyKind = 1 (default) |
| cmpMode = 2 (cmpSingleMcmpR) |
| occu0 = 1 |
| groupCntl = 0 |
| rfc = 1 |
| unShareable = 0 |
| mightBeShared = 0 |
| sharedWithShmTab = 0 |
| isShmLockId = 0 |
| gcKind = 0 |
| isUsed = 1 |
| isCtfyAble = 1 |
| >>>>> Shareable Table Header Data <<<<< |
| tabi = 0x202D39A0 |
| pgHook = 0x60F53AA0 |
| idxPtr = 0x00000000 |
| shmTabhSet = 0x00000000 |
| id = 2925 (0x6D0B0000) |
| refCount = 0 (0x00000000) |
| tstRefCount = 0 (0x00000000) |
| lineAdmin = 432 (0xB0010000) |
| lineAlloc = 304 (0x30010000) |
| shmVersId = 0 (0x00000000) |
| shmRefCount = 1 (0x01000000) |
| >>>>> 1st level extension part <<<<< |
| regHook = 0x00000000 |
| collHook = 0x00000000 |
| ext2 = 0x98F43AA0 |
| >>>>> 2nd level extension part <<<<< |
| tabhBack = 0xD8A21EA0 |
| delta_head = 010000006F000000CD0000000200000004CB0000B0140000740000000100000005000000 |
| pb_func = 0x00000000 |
| pb_handle = 0x00000000 |
| C_T_UID_SERVER[] |
| Table IT_3900[2x50] |
| FUNCTION-POOL=RZX0FORM=RSZ_X_COMPONENT_SET_NEWDATA=%_%_C_T_UID_SERVER |
| Table reference: 347 |
| TABH+ 0(20) = 60F33AA0D8F53AA0000000005B0100003C0F0000 |
| TABH+ 20(20) = 0200000032000000FFFFFFFF04CB0000A8160000 |
| TABH+ 40( 8) = 02000000C1248101 |
| store = 0x60F33AA0 |
| ext1 = 0xD8F53AA0 |
| shmId = 0 (0x00000000) |
| id = 347 (0x5B010000) |
| label = 3900 (0x3C0F0000) |
| fill = 2 (0x02000000) |
| leng = 50 (0x32000000) |
| loop = -1 (0xFFFFFFFF) |
| xtyp = TYPE#000093 |
| occu = 2 (0x02000000) |
| access = 1 (ItAccessStandard) |
| idxKind = 0 (ItIndexNone) |
| uniKind = 2 (ItUniqueNon) |
| keyKind = 1 (default) |
| cmpMode = 2 (cmpSingleMcmpR) |
| occu0 = 1 |
| groupCntl = 0 |
| rfc = 1 |
| unShareable = 0 |
| mightBeShared = 0 |
| sharedWithShmTab = 0 |
| isShmLockId = 0 |
| gcKind = 0 |
| isUsed = 1 |
| isCtfyAble = 1 |
| >>>>> Shareable Table Header Data <<<<< |
| tabi = 0xE8F23AA0 |
| pgHook = 0x00000000 |
| idxPtr = 0x00000000 |
| shmTabhSet = 0x00000000 |
| id = 2930 (0x720B0000) |
| refCount = 0 (0x00000000) |
| tstRefCount = 0 (0x00000000) |
| lineAdmin = 2 (0x02000000) |
| lineAlloc = 2 (0x02000000) |
| shmVersId = 0 (0x00000000) |
| shmRefCount = 1 (0x01000000) |
| >>>>> 1st level extension part <<<<< |
| regHook = 0x00000000 |
| collHook = 0x00000000 |
| ext2 = 0x90F53AA0 |
| >>>>> 2nd level extension part <<<<< |
| tabhBack = 0xE0F43AA0 |
| delta_head = 0100000070000000C50000000A00000004CB0000E0160000320000000100000005000000 |
| pb_func = 0x00000000 |
| pb_handle = 0x00000000 |
| C_T_VAR[] |
| Table IT_3901[2x644] |
| FUNCTION-POOL=RZX0FORM=RSZ_X_COMPONENT_SET_NEWDATA=%_%_C_T_VAR |
| Table reference: 348 |
| TABH+ 0(20) = A0F63AA080F63AA0000000005C0100003D0F0000 |
| TABH+ 20(20) = 0200000084020000FFFFFFFF04CB000038160000 |
| TABH+ 40( 8) = 10000000C1248101 |
| store = 0xA0F63AA0 |
| ext1 = 0x80F63AA0 |
| shmId = 0 (0x00000000) |
| id = 348 (0x5C010000) |
| label = 3901 (0x3D0F0000) |
| fill = 2 (0x02000000) |
| leng = 644 (0x84020000) |
| loop = -1 (0xFFFFFFFF) |
| xtyp = TYPE#000091 |
| occu = 16 (0x10000000) |
| access = 1 (ItAccessStandard) |
| idxKind = 0 (ItIndexNone) |
| uniKind = 2 (ItUniqueNon) |
| keyKind = 1 (default) |
| cmpMode = 2 (cmpSingleMcmpR) |
| occu0 = 1 |
| groupCntl = 0 |
| rfc = 1 |
| unShareable = 0 |
| mightBeShared = 0 |
| sharedWithShmTab = 0 |
| isShmLockId = 0 |
| gcKind = 0 |
| isUsed = 1 |
| isCtfyAble = 1 |
| >>>>> Shareable Table Header Data <<<<< |
| tabi = 0xB8DD42A0 |
| pgHook = 0x00000000 |
| idxPtr = 0x00000000 |
| shmTabhSet = 0x00000000 |
| id = 2926 (0x6E0B0000) |
| refCount = 0 (0x00000000) |
| tstRefCount = 0 (0x00000000) |
| lineAdmin = 16 (0x10000000) |
| lineAlloc = 16 (0x10000000) |
| shmVersId = 0 (0x00000000) |
| shmRefCount = 1 (0x01000000) |
| >>>>> 1st level extension part <<<<< |
| regHook = 0x00000000 |
| collHook = 0x00000000 |
| ext2 = 0x38F63AA0 |
| >>>>> 2nd level extension part <<<<< |
| tabhBack = 0xF8F53AA0 |
| delta_head = 0100000071000000EC0000002300000004CB000070160000840200000100000005000000 |
| pb_func = 0x00000000 |
| pb_handle = 0x00000000 |
| %_DUMMY$$ |
| |
| 2222 |
| 0000 |
| SY-REPID |
| SAPLRZX0 |
| 5454555322222222222222222222222222222222 |
| 310C2A8000000000000000000000000000000000 |
| <L_TRACE_MAX_MESSAGE_TYPE> |
| ??? |
| ?????? |
| ?????? |
| SYST |
| 4###########################################################################y################# |
| 3000000000000000000000000000000000000000000000000000000000000000000000000000700000000000000000 |
| 400000000000800000000000A000000000000000000010001000000010000000000000000000900000000000000000 |
| G_CS_UID_LOOKUP_WRONG_DEFTP |
| ####ER9 171 |
| 1000453222222222222222222333 |
| C000529000000000000000000171 |
| G_CS_ELEMENT_LOCKED |
| ####ER9 113 |
| 0000453222222222222222222333 |
| D000529000000000000000000113 |
| L_R_FUNCTION_MODULE_EXCEPTION |
|
1000E000
A0005000
SPACE
2
0
L_TRACE_MAX_MESSAGE_TYPE
2
0
SY-ONCOM
X
5
8
%_SPACE
2
0
No. 3 Ty. FORM
Name RSZ_X_COMPONENT_SET_NEW
CL_RSTT_TRACE=>N_R_TRACEREF
F0000000
F0000000
RSBBS_C_TYPE-ABAP_QUERY
A
4
1
%_%_I_QD_VERSION
700
33322
70000
%_%_I_COMPUID
F3IH9GRA1X9X7DRPIYFPE1QP7
4344345435353455454543553
6398972118987420996051107
%_%_I_COPY_MODE
2
0
CL_GUI_TEXTEDIT=>ABAP_COMMENTLINE_IDENTIFIER
%_%_I_LANGUAGE
S
5
3
%_%_I_NODE
0000000000
3333333333
0000000000
%_%_I_NO_TRANSPORT
2
0
%_%_I_OBJVERS
A
4
1
%_%_I_ROLE
222222222222222222222222222222
000000000000000000000000000000
G_CS_NO_IOBJ_F4_AVAILABLE
####SR9 103
0000553222222222222222222333
8000329000000000000000000103
%_%_E_GENUNIID
2222222222222222222222222
0000000000000000000000000
CL_GUI_TEXTEDIT=>BOOL_INITIAL
%_%_E_SUBRC
0
0000
0000
%_%_C_T_CALC
Table IT_3889[5x158]
%_%_C_T_CELL
Table IT_3890[0x76]
%_%_C_T_COMPDIR
Table IT_3891[7x169]
%_%_C_T_COMPIC
Table IT_3892[5x81]
%_%_C_T_ELTATTR
Table IT_3893[0x124]
CL_BSP_MESSAGES=>CO_SEVERITY_ERROR
%_%_C_T_ELTDIR
Table IT_3894[98x203]
%_%_C_T_ELTPRIO
Table IT_3895[77x150]Hi Gaurav
I already locked for a OSS note, but i could not find the answer
Please, Could you tell me how you solve the problem?
Thanks
Ariel -
Problem with the control break statement - AT END OF
data : IT_DATA TYPE STANDARD TABLE OF /BIC/OH0SPA_OHD WITH KEY /B28/S_D1DVOX5 ,
FIELD-SYMBOLS : <ls_data> TYPE any,
SELECT * FROM (c_open_hub) INTO TABLE IT_DATA .
*IF sy-subrc = 0.
*ENDIF.
Create the GUID for header
CALL FUNCTION 'GUID_CREATE'
IMPORTING
EV_GUID_32 = LV_GUID.
TRY.
CALL METHOD CL_GDT_CONVERSION=>GUID_OUTBOUND
EXPORTING
IM_GUID_C = LV_GUID
IMPORTING
EX_VALUE = LV_UUID.
CATCH CX_GDT_CONVERSION INTO go_exc .
gv_text = go_exc->get_text( ).
Application log for errors
IF gv_text IS NOT INITIAL.
PERFORM add_msg_to_log CHANGING lt_return.
CALL FUNCTION '/SPA/APPL_LOG'
EXPORTING
LV_OBJECT = '/SPA/APPL'
LV_SUBOBJECT = '/SPA/ESOA'
IT_RETURN = lt_return.
ENDIF.
ENDTRY.
OUTPUT-TRADE_PROMOTION_CRMBULK_CREATE-MESSAGE_HEADER-ID-CONTENT = LV_GUID.
OUTPUT-TRADE_PROMOTION_CRMBULK_CREATE-MESSAGE_HEADER-UUID-CONTENT = LV_UUID.
SELECT * FROM DD03T INTO TABLE lt_dd03t WHERE TABNAME = c_open_hub AND DDLANGUAGE = 'E' AND AS4LOCAL = 'A'.
*IF sy-subrc = 0.
*ENDIF.
Sort the delta table
SORT it_data.
populate the output structure
LOOP AT IT_DATA ASSIGNING <ls_data>.
READ TABLE lt_dd03t INTO ls_dd03t with KEY DDTEXT = c_keyfigures.
ASSIGN COMPONENT ls_dd03t-FIELDNAME OF STRUCTURE <ls_data> to <l_keyfigures>.
READ TABLE lt_dd03t INTO ls_dd03t with KEY DDTEXT = c_signdata.
ASSIGN COMPONENT ls_dd03t-FIELDNAME OF STRUCTURE <ls_data> to <l_signdata>.
READ TABLE lt_dd03t INTO ls_dd03t with KEY DDTEXT = c_bbtype.
ASSIGN COMPONENT ls_dd03t-FIELDNAME OF STRUCTURE <ls_data> to <l_bbtype>.
READ TABLE lt_dd03t INTO ls_dd03t with KEY DDTEXT = c_customer.
ASSIGN COMPONENT ls_dd03t-FIELDNAME OF STRUCTURE <ls_data> to <l_customer>.
READ TABLE lt_dd03t INTO ls_dd03t with KEY DDTEXT = c_product.
ASSIGN COMPONENT ls_dd03t-FIELDNAME OF STRUCTURE <ls_data> to <l_product>.
READ TABLE lt_dd03t INTO ls_dd03t with KEY DDTEXT = c_territory.
ASSIGN COMPONENT ls_dd03t-FIELDNAME OF STRUCTURE <ls_data> to <l_territory>.
READ TABLE lt_dd03t INTO ls_dd03t with KEY DDTEXT = c_time.
ASSIGN COMPONENT ls_dd03t-FIELDNAME OF STRUCTURE <ls_data> to <l_time>.
CASE <l_keyfigures>.
WHEN c_sd.
PERFORM DATE_CALC USING <l_signdata> CHANGING LV_DATE.
ls_period_term-start_date = lv_date.
WHEN c_ed.
PERFORM DATE_CALC USING <l_signdata> CHANGING LV_DATE.
ls_period_term-end_date = lv_date.
WHEN c_uplift.
LS_PRODUCT_KF-ID-CONTENT = c_uplift_qyts.
LS_PRODUCT_KF-VALUE = <l_signdata>.
LS_PRODUCT_KF-YEAR = lv_week(4).
LS_PRODUCT_KF-CALENDAR_PERIOD_ORDINAL_NUMBER = lv_week+4.
APPEND LS_PRODUCT_KF TO LT_PRODUCT_KF.
WHEN OTHERS.
PERFORM DATE_CALC USING <l_signdata> CHANGING LV_DATE.
ls_period_term-start_date = lv_date.
Get week
CALL FUNCTION 'DATE_GET_WEEK'
EXPORTING
DATE = LS_PERIOD_TERM-START_DATE
IMPORTING
WEEK = LV_WEEK.
append Keyfigure
LS_PRODUCT_KF-ID-CONTENT = <l_keyfigures> .
LS_PRODUCT_KF-VALUE = <l_signdata>.
LS_PRODUCT_KF-YEAR = lv_week(4).
LS_PRODUCT_KF-CALENDAR_PERIOD_ORDINAL_NUMBER = lv_week+4.
APPEND LS_PRODUCT_KF TO LT_PRODUCT_KF.
append tradespend
SELECT SINGLE * FROM /SPA/SPEND_MAP INTO CORRESPONDING FIELDS OF LV_/SPA/SPEND_MAP
WHERE KEY_FIGURE = <l_keyfigures>.
IF sy-subrc = 0.
LS_TRADE_SPEND-TYPE_CODE-CONTENT = LV_/SPA/SPEND_MAP-SPEND_TYPE.
LS_TRADE_SPEND-CATEGORY_CODE-CONTENT = LV_/SPA/SPEND_MAP-SPEND_CATEGORY.
LS_TRADE_SPEND-METHOD_CODE-CONTENT = LV_/SPA/SPEND_MAP-SPEND_METHOD.
APPEND LS_TRADE_SPEND TO LT_TRADE_SPEND.
else.
lv_flg = 'X'.
ENDIF.
ENDCASE.
AT END OF /B28/S_D1DVOX5. "
SELECT SINGLE * FROM /SPA/SO_TER_MAP INTO LS_/SPA/SO_TER_MAP WHERE TERRITORY = <l_territory>.
IF sy-subrc = 0 AND lv_flg IS INITIAL.
Create the GUID for TP's
CALL FUNCTION 'GUID_CREATE'
IMPORTING
EV_GUID_32 = LV_GUID_MESSAGE.
TRY.
CALL METHOD CL_GDT_CONVERSION=>GUID_OUTBOUND
EXPORTING
IM_GUID_C = LV_GUID_MESSAGE
IMPORTING
EX_VALUE = LV_UUID_MESSAGE.
CATCH CX_GDT_CONVERSION .
ENDTRY.
populate the product
LS_PRODUCT-ID-CONTENT = <l_product>.
LS_CUSTOMER-ID-CONTENT = '300022'.
LS_CUSTOMER-ROLE_CODE = '00000105'.
LS_PRODUCT-KEY_FIGURE = LT_PRODUCT_KF.
APPEND LS_PRODUCT TO LT_PRODUCT.
APPEND LS_CUSTOMER TO LT_CUSTOMER.
APPEND LS_DESCRIPTION TO LT_DESCRIPTION.
APPEND LS_PERIOD_TERM TO LT_PERIOD_TERM.
LS_TRADE_PROMOTION-TRADE_PROMOTION-SALES_AREA-ORGANISATIONAL_CENTRE_ID = LS_/SPA/SO_TER_MAP-SALES__ORG.
LS_TRADE_PROMOTION-TRADE_PROMOTION-SALES_AREA-DISTRIBUTION_CHANNEL_CODE-CONTENT = LS_/SPA/SO_TER_MAP-DIST_CHANNEL.
LS_TRADE_PROMOTION-TRADE_PROMOTION-PLANNING_ACCOUNT-CUSTOMER_INTERNAL_ID = <l_customer>.
LS_TRADE_PROMOTION-TRADE_PROMOTION-PLANNING_PROFILE_GROUP_CODE-CONTENT = '4TPM'.
LS_TRADE_PROMOTION-TRADE_PROMOTION-TYPE_CODE-CONTENT = 'Z002'.
LS_TRADE_PROMOTION-TRADE_PROMOTION-UPLIFT_ACTIVE_INDICATOR = 'X'.
LS_TRADE_PROMOTION-TRADE_PROMOTION-PLANNING_INFORMATION-MARKETING_PROJECT_PLANNING_PRO = '5'.
LS_TRADE_PROMOTION-TRADE_PROMOTION-PLANNING_INFORMATION-CALENDAR_UNIT_CODE = 'WEE'.
LS_TRADE_PROMOTION-TRADE_PROMOTION-TRADE_SPEND = LT_TRADE_SPEND.
LS_TRADE_PROMOTION-TRADE_PROMOTION-PARTY = LT_CUSTOMER.
LS_TRADE_PROMOTION-TRADE_PROMOTION-DESCRIPTION = LT_DESCRIPTION.
LS_TRADE_PROMOTION-TRADE_PROMOTION-PLANNING_INFORMATION-PRODUCT = LT_PRODUCT.
LS_TRADE_PROMOTION-TRADE_PROMOTION-PERIOD_TERM = LT_PERIOD_TERM.
LS_TRADE_PROMOTION-MESSAGE_HEADER-ID-CONTENT = LV_GUID_MESSAGE.
LS_TRADE_PROMOTION-MESSAGE_HEADER-UUID-CONTENT = LV_UUID_MESSAGE.
LS_/SPA/REPORT_TAB-SPA_TP_ID = <l_bbtype>.
LS_/SPA/REPORT_TAB-MESSAGE_ID = LV_GUID_MESSAGE.
LS_/SPA/REPORT_TAB-CREATE_DATE = SY-DATUM.
INSERT /SPA/REPORT_TAB FROM LS_/SPA/REPORT_TAB.
APPEND LS_TRADE_PROMOTION TO LT_TRADE_PROMOTION.
OUTPUT-TRADE_PROMOTION_CRMBULK_CREATE-TRADE_PROMOTION_CRMCREATE_REQU = LT_TRADE_PROMOTION.
CLEAR : LT_DESCRIPTION, LT_PERIOD_TERM,LT_CUSTOMER, LT_PRODUCT, LT_PRODUCT_KF, LT_TRADE_SPEND,LS_/SPA/HEADER_TAB.
ENDIF.
CLEAR lv_flg .
ENDAT.
ENDLOOP.
My problem is AT-END OF STATEMENT IS executing for each and every record of same /B28/S_D1DVOX5.
Please help me from this problemHello,
First of all to know clearly about AT END.
Let's say In IT_DATA fields are F1 F2 F3 /B28/S_D1DVOX5 F5.
then AT END of /B28/S_D1DVOX5 means for each new value of this field at the end it will trigger.
Please ensure thet IT_DATA is sorted by this field and then used Control break.
Thanks,
Pramod -
SY-DATUM ISSUE.....
Hi All,
When I write the statement like this: WRITE: /1 sy-datum, its printing the date 01/28/2008, but my requirement is I wanted to print like this: 01/28/08, how to do please let me know.
Akshitha.Hi,
ther are many options. but uthis case if u change the user master record.or select the date format in table usr01.
the hard coating is not at all god and it also have limitation .
this function module also helps u.
CONVERT_DATE_TO_EXTERNAL Converts date from system storage format to users specified display format
let me know if u are not able to get it.
reward all help full answers
/: SET DATE MASK = 'date_mask'
In the date mask, you can use the following codes:
DD: day (two digits)
DDD: day name - abbreviated
DDDD: day name - written out in full
MM: month (two digits)
MMM: month name - abbreviated
MMMM: month name - written out in full
YY: year (two digits)
YYYY: year (four digits)
LD: day (formatted as for the L option)
LM: month (formatted as for the L option)
LY: year (formatted as for the L option)
Assuming the current system date is March 1st, 1997.
/: SET DATE MASK = 'Foster City, MM/DD/YY'
&DATE& -> Foster City, 03/01/97
/: SET DATE MASK = 'MMMM DD, YYYY'
&DATE& -> March 01, 1997
The date mask may be reset to the default setting by using an empty string:
/: SET DATE MASK = ' '
In most print programs there is a function module called as below.
By setting the export parameter PI_COUNTRY one can set the form to print all dates according to country without any further coding.
CALL FUNCTION 'WFMC_PREPARE_SMART_FORM'
EXPORTING
PI_NAST = NAST
PI_COUNTRY = IS_DLV-LAND
PI_ADDR_KEY = IS_ADDR_KEY
PI_REPID = LF_REPID
PI_SCREEN = XSCREEN
IMPORTING
PE_RETURNCODE = CF_RETCODE
PE_ITCPO = LS_ITCPO
PE_DEVICE = LF_DEVICE
PE_RECIPIENT = CS_RECIPIENT
PE_SENDER = CS_SENDER.
or
If the input is always in the format DD.MM.YYYY..Then check this..
Use the sub field operation to get the values and then use concanate..
Ex.
DATA: V_INPUT(10) VALUE '27.03.2007'.
DATA: V_OUTPUT(10).
CONCATENATE V_INPUT3(2) '/' V_INPUT(2) '/' V_INPUT6(4)
INTO V_OUTPUT.
WRITE: / V_OUTPUT.
or
You can use function module CONVERSION_EXIT_SDATE_OUTPUT to convert the date format
If your problem is solved please set the question as answered.
Regards,
Chandru -
Hi All,
I am using the step type LOOP UNTIL in my workflow..
I am using 2 container elements to check and will send a reminder to the
possible agent when the condition is true..
i will explain my problem using a scenario..
i have a container lt_end = sy-datum + 20...so it has a value 20.03.2007
and another container td_date = sy-datum...
so using these 2 variables i loop using condition
loop until lt_end = td_date..
and when this condition is true i should send a mail..
but it is goin in an infinite loop..and creating 1000's of reminder workitems...
So i wanted to know how to compare <b>Dates in the loop</b>
Thanks,
RavikiranHi Ravikiran,
I faced the same problem in one of my project. i explain what is my scenario and how i solved it.
Scenario:
A complaint is created in the crm and that is assigned to a 'assigned to' person, at this point i have to send a mail to this 'assigned to' person saying workitem is bending.
If the person is not acting on that workitem for first four hours i have send a mail to his manager, and i have to send a notification to the manager for every 24 hrs if the person is not acting on that workitem.
Solution:
Remember this, in this kind of scenario you have to use 'REQUESTED START' the workitem will be place in the inbox when the deadline is reached.
So i did like this, in the date field i gave sy-datum and in the time i gave sy-uzeit
and i added 4 hours so when ever the workflow comes to this step if waits for 4 hours and then it sends the mail. I followed the same for 24 hours.
I think the answer will be useful. give me your email id so that i can send you the screen shot.
Give me points if this answer solves your problem.
Regards
Balaji E. -
Hi Friends,
I have the following 2 problems in ALV report
1) Logo is not getting displayed in the report.
2) When i click on the Purchase order number in the report the interactive report is not working,i am not able to see report of First interactive level.
can you help it out friends.
Thanks and regards
Dinesh
REPORT YSDBALV1
tables: ekko , ekpo .
type-pools: slis .
Table for Display Header
data:i_header type slis_t_listheader with header line.
*Fieldcat Declaration
data:fieldcatalog type slis_T_fieldcat_alv WITH HEADER LINE.
*Table of Events
data:i_event type slis_t_event with header line .
For Layout
data:i_layout type slis_layout_alv .
data: text(30) .
*Internal Table Declaration
data: begin of it_final occurs 0 ,
ebeln like ekko-ebeln , "Purchasing Document No.
bedat like ekko-bedat , "Purchasing Document Date
matnr like ekpo-matnr , "Material No.
netwr like ekpo-netwr , "Net Order Value in PO Currancy
meins like ekpo-meins , "UOM
chk(1) ,
light(1) ,
change like ekpo-menge ,
end of it_final .
**select option Declaration
selection-screen begin of block block.
select-options: s_ebeln for ekko-ebeln .
selection-screen end of block block .
selection-screen begin of block block1 .
parameters:grid radiobutton group r .
parameters:list radiobutton group r .
selection-screen end of block block1 .
at selection screen
at selection-screen .
select single * from ekko where ebeln in s_ebeln .
if sy-subrc <> 0 .
message e000(8I) WITH 'No Data Exists' .
endif .
start-of-selection .
if grid = 'X' .
perform get_data .
perform event using i_event[] .
perform field using fieldcatalog[] .
perform layout using i_layout .
perform grid_display .
endif .
*& Form get_data
text
--> p1 text
<-- p2 text
form get_data .
*DATA Retrieval from tables
SELECT EKKO~EBELN
EKKO~BEDAT
EKPO~EBELP
EKPO~MATNR
EKPO~NETWR
EKPO~MEINS
EKPO~MENGE
EKPO~BPRME
INTO CORRESPONDING FIELDS OF table IT_FINAL
FROM EKKO INNER JOIN EKPO ON EKKOEBELN = EKPOEBELN
WHERE EKKO~EBELN IN S_EBELN.
APPEND IT_FINAL.
endform. " get_data
*Getting the Event for Top of Page display.
*& Form event
text
-->P_I_event[] text
form event using p_i_event type slis_t_event.
clear p_i_event .
refresh p_i_event .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = p_i_event
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
read table p_i_event with key name = slis_ev_top_of_page into i_event.
if sy-subrc = 0.
move 'TOP_OF_PAGE_PO' to i_event-form.
modify p_i_event from i_event index sy-tabix transporting form.
endif.
clear i_event.
endform. " event
*Display Top-of Page Details and Logo
form top_of_page_po .
clear i_header .
refresh i_header .
write sy-datum to text.
i_header-typ = 'H'.
i_header-info = 'PURCHASE OREDER DETAILS'.
append i_header.
*Logo Display
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_header[]
I_LOGO = 'ENJOYSAPLOGO'.
endform .
*Field Catalog Append
*& Form field
text
-->P_fieldCATALOG[] text
form field using p_fieldcatalog type slis_t_fieldcat_alv.
clear fieldcatalog.
fieldcatalog-fieldname = 'EBELN'.
fieldcatalog-seltext_m = 'Purchase Order No'.
fieldcatalog-col_pos = 1.
append fieldcatalog .
clear fieldcatalog.
fieldcatalog-fieldname = 'BEDAT'.
fieldcatalog-seltext_m = 'PO Date'.
fieldcatalog-col_pos = 2.
append fieldcatalog .
clear fieldcatalog.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-seltext_m = 'Material No'.
fieldcatalog-col_pos = 4.
fieldcatalog-outputlen = 20.
append fieldcatalog .
clear fieldcatalog.
fieldcatalog-fieldname = 'NETWR'.
fieldcatalog-seltext_m = 'Net Value '.
fieldcatalog-col_pos = 5.
fieldcatalog-outputlen = 20.
fieldcatalog-do_sum = 'X'.
append fieldcatalog .
clear fieldcatalog.
fieldcatalog-fieldname = 'MEINS'.
fieldcatalog-seltext_m = 'Units'.
fieldcatalog-col_pos = 6.
fieldcatalog-outputlen = 4.
append fieldcatalog .
clear fieldcatalog.
endform. " field
*& Form layout
text
form layout using p_i_layout TYPE SLIS_LAYOUT_ALV .
i_layout-zebra = 'X'.
i_layout-lights_fieldname = 'LIGHT'.
i_layout-lights_tabname = 'IT_FINAL'.
i_layout-box_fieldname = 'CHK'.
i_layout-box_tabname = 'IT_FINAL'.
i_layout-edit = ' '.
endform.
*To display Buttons in the MENU BAR if needed
FORM SET_PO_PF_STATUS USING P_I_EXTAB TYPE
SLIS_T_EXTAB.
SET PF-STATUS 'MENUPO'.
ENDFORM.
*Event for Interactive display of ALV report
form USER_COMMAND using r_ucomm like sy-ucomm
rs_selfield type slis_selfield .
if r_ucomm = '&IC1'.
READ TABLE IT_FINAL index rs_selfield-tabindex.
write:/ IT_FINAL-ebeln.
endif.
endform .
*Parameters of FM REUSE_ALV_GRID_DISPLAY
*& Form grid_display
text
--> p1 text
<-- p2 text
form grid_display .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = 'SET_PO_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IS_LAYOUT = I_LAYOUT
IT_FIELDCAT = FIELDCATALOG[]
IT_EVENTS = I_EVENT[]
TABLES
t_outtab = IT_FINAL.
endform. " grid_display*& Report YSDBALV1
REPORT YSDBALV1.
tables: ekko , ekpo .
type-pools: slis .
Table for Display Header
data:i_header type slis_t_listheader with header line.
*Fieldcat Declaration
data:fieldcatalog type slis_T_fieldcat_alv WITH HEADER LINE.
*Table of Events
data:i_event type slis_t_event with header line ,
wa_event type line of slis_t_event.
For Layout
data:i_layout type slis_layout_alv .
data: text(30) .
*Internal Table Declaration
data: begin of it_final occurs 0 ,
ebeln like ekko-ebeln , "Purchasing Document No.
bedat like ekko-bedat , "Purchasing Document Date
matnr like ekpo-matnr , "Material No.
netwr like ekpo-netwr , "Net Order Value in PO Currancy
meins like ekpo-meins , "UOM
chk(1) ,
light(1) ,
change like ekpo-menge ,
end of it_final .
**select option Declaration
selection-screen begin of block block.
select-options: s_ebeln for ekko-ebeln .
selection-screen end of block block .
selection-screen begin of block block1 .
parameters:grid radiobutton group r .
parameters:list radiobutton group r .
selection-screen end of block block1 .
at selection screen
at selection-screen .
select single * from ekko where ebeln in s_ebeln .
if sy-subrc <> 0 .
message e000(8I) WITH 'No Data Exists' .
endif .
start-of-selection .
if grid = 'X' .
perform get_data .
perform event using i_event[] .
perform field using fieldcatalog[] .
perform layout using i_layout .
perform grid_display .
endif .
*& Form get_data
text
--> p1 text
<-- p2 text
form get_data .
*DATA Retrieval from tables
SELECT EKKO~EBELN
EKKO~BEDAT
EKPO~EBELP
EKPO~MATNR
EKPO~NETWR
EKPO~MEINS
EKPO~MENGE
EKPO~BPRME
INTO CORRESPONDING FIELDS OF table IT_FINAL
FROM EKKO INNER JOIN EKPO ON EKKOEBELN = EKPOEBELN
WHERE EKKO~EBELN IN S_EBELN.
APPEND IT_FINAL.
endform. " get_data
*Getting the Event for Top of Page display.
*& Form event
text
-->P_I_event[] text
form event using p_i_event type slis_t_event.
clear p_i_event .
refresh p_i_event .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = p_i_event.
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2.
read table p_i_event with key name = slis_ev_top_of_page into wa_event.
if sy-subrc = 0.
move 'TOP_OF_PAGE_PO' to i_event-form.
modify p_i_event from i_event index sy-tabix transporting form.
endif.
clear i_event.
endform. " event
*Display Top-of Page Details and Logo
form top_of_page_po .
clear i_header .
refresh i_header .
write sy-datum to text.
i_header-typ = 'H'.
i_header-info = 'PURCHASE OREDER DETAILS'.
append i_header.
*Logo Display
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_header[]
I_LOGO = 'ENJOYSAP_LOGO'.
endform .
*Field Catalog Append
*& Form field
text
-->P_fieldCATALOG[] text
form field using p_fieldcatalog type slis_t_fieldcat_alv.
clear fieldcatalog.
fieldcatalog-fieldname = 'EBELN'.
fieldcatalog-seltext_m = 'Purchase Order No'.
fieldcatalog-col_pos = 1.
append fieldcatalog .
clear fieldcatalog.
fieldcatalog-fieldname = 'BEDAT'.
fieldcatalog-seltext_m = 'PO Date'.
fieldcatalog-col_pos = 2.
append fieldcatalog .
clear fieldcatalog.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-seltext_m = 'Material No'.
fieldcatalog-col_pos = 4.
fieldcatalog-outputlen = 20.
append fieldcatalog .
clear fieldcatalog.
fieldcatalog-fieldname = 'NETWR'.
fieldcatalog-seltext_m = 'Net Value '.
fieldcatalog-col_pos = 5.
fieldcatalog-outputlen = 20.
fieldcatalog-do_sum = 'X'.
append fieldcatalog .
clear fieldcatalog.
fieldcatalog-fieldname = 'MEINS'.
fieldcatalog-seltext_m = 'Units'.
fieldcatalog-col_pos = 6.
fieldcatalog-outputlen = 4.
append fieldcatalog .
clear fieldcatalog.
endform. " field
*& Form layout
text
form layout using p_i_layout TYPE SLIS_LAYOUT_ALV .
i_layout-zebra = 'X'.
i_layout-lights_fieldname = 'LIGHT'.
i_layout-lights_tabname = 'IT_FINAL'.
i_layout-box_fieldname = 'CHK'.
i_layout-box_tabname = 'IT_FINAL'.
i_layout-edit = ' '.
endform.
*To display Buttons in the MENU BAR if needed
FORM SET_PO_PF_STATUS USING P_I_EXTAB TYPE
SLIS_T_EXTAB.
SET PF-STATUS 'MENUPO'.
ENDFORM.
*Event for Interactive display of ALV report
form USER_COMMAND using r_ucomm like sy-ucomm
rs_selfield type slis_selfield .
if r_ucomm = '&IC1'.
READ TABLE IT_FINAL index rs_selfield-tabindex.
set parameter id 'VL1' field it_final-ebeln.
call transaction 'ME23N'.
endif.
endform .
*Parameters of FM REUSE_ALV_GRID_DISPLAY
*& Form grid_display
text
--> p1 text
<-- p2 text
form grid_display .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = 'SET_PO_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IS_LAYOUT = I_LAYOUT
IT_FIELDCAT = FIELDCATALOG[]
IT_EVENTS = I_EVENT[]
TABLES
t_outtab = IT_FINAL.
endform. " grid_display
Regards,
Rusidar S. -
URGENT ----- Problem in converting spool to pdf .
Error - File cannot be opened because of no pages ......
Hi experts,
I am passing internal table contents to spool --> then spool to pdf -
> then mail sending.
Everything is fine but only error is in the receiving mail the above error is coming.
given the code...
<b>I think the error is in converting into pdf function module</b>
<b>Help me to solve this problem as it is very urgent</b>
include data_declare. " pasted down
select * from kna1 into table itab up to 50 rows.
CALL FUNCTION 'RSPO_OPEN_SPOOLREQUEST'
EXPORTING
dest = 'LP01'
immediate_print = 'X'
IMPORTING
handle = handle
SPOOLID = spoolid.
loop at itab.
concatenate itab-kunnr itab-name1 itab-land1 into text separated by
space.
CALL FUNCTION 'RSPO_WRITE_SPOOLREQUEST'
EXPORTING
handle = handle
text = text.
endloop.
CALL FUNCTION 'RSPO_CLOSE_SPOOLREQUEST'
EXPORTING
handle = handle.
Convert Spool to PDF **********************************
<b>CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = spoolid "gd_spool_nr
no_dialog = c_no
dst_device = c_device
IMPORTING
pdf_bytecount = gd_bytecount
TABLES
pdf = it_pdf_output
EXCEPTIONS
err_no_abap_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_destdevice = 5
user_cancelled = 6
err_spoolerror = 7
err_temseerror = 8
err_btcjob_open_failed = 9
err_btcjob_submit_failed = 10
err_btcjob_close_failed = 11
OTHERS = 12.
CHECK sy-subrc = 0.
Transfer the 132-long strings to 255-long strings
LOOP AT it_pdf_output.
TRANSLATE it_pdf_output USING ' ~'.
CONCATENATE gd_buffer it_pdf_output INTO gd_buffer.
ENDLOOP.
TRANSLATE gd_buffer USING '~ '.
DO.
it_mess_att = gd_buffer.
APPEND it_mess_att.
SHIFT gd_buffer LEFT BY 255 PLACES.
IF gd_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.</b>
Processing Mail Sending ************************************
DATA: p_email LIKE somlreci1-receiver,
p_sender LIKE somlreci1-receiver,
sub(40).
DESCRIBE TABLE it_mess_att LINES gd_recsize.
CHECK gd_recsize > 0.
REFRESH it_mess_bod.
Default subject matter
gd_subject = 'Subject'.
gd_attachment_desc = text-002.
it_mess_bod = text-001.
APPEND it_mess_bod.
IF p_sender EQ space.
gd_sender_type = space.
ELSE.
gd_sender_type = 'INT'.
ENDIF.
MOVE 'Orders Rejeced on' TO sub.
WRITE: sy-datum DD/MM/YYYY TO sub+27(10).
Send file by email as .xls speadsheet
PERFORM send_file_as_email_attachment
TABLES it_mess_bod
it_mess_att
USING
p_email
sub "text-009
'PDF'
gd_attachment_name
gd_attachment_desc
p_sender
gd_sender_type
CHANGING gd_error
gd_reciever.
ENDFORM. " process_email
*& Form send_file_as_email_attachment
text
-->P_IT_MESS_BOD text
-->P_IT_MESS_ATT text
-->P_TEXT_009 text
-->P_1058 text
-->P_GD_ATTACHMENT_NAME text
-->P_GD_ATTACHMENT_DESC text
<--P_GD_ERROR text
<--P_GD_RECIEVER text
FORM send_file_as_email_attachment TABLES it_message
it_attach
USING
p_email
p_mtitle
p_format
p_filename
p_attdescription
p_sender_address
p_sender_addres_type
CHANGING p_error
p_reciever.
DATA: ld_error TYPE sy-subrc,
ld_reciever TYPE sy-subrc,
ld_mtitle LIKE sodocchgi1-obj_descr,
ld_email LIKE somlreci1-receiver,
ld_format TYPE so_obj_tp ,
ld_attdescription TYPE so_obj_nam ,
ld_attfilename TYPE so_obj_des ,
ld_sender_address LIKE soextreci1-receiver,
ld_sender_address_type LIKE soextreci1-adr_typ,
ld_receiver LIKE sy-subrc.
DATA: t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
t_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE,
w_cnt TYPE i,
w_sent_all(1) TYPE c,
w_doc_data LIKE sodocchgi1.
ld_email = p_email.
ld_mtitle = p_mtitle.
ld_format = p_format.
ld_attdescription = p_attdescription.
ld_attfilename = p_filename.
ld_sender_address = p_sender_address.
ld_sender_address_type = p_sender_addres_type.
Fill the document data.
w_doc_data-doc_size = 1.
Populate the subject/generic message attributes
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle .
w_doc_data-sensitivty = 'F'.
Fill the document data and get size of attachment
CLEAR w_doc_data.
READ TABLE it_attach INDEX w_cnt.
w_doc_data-doc_size =
( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle.
w_doc_data-sensitivty = 'F'.
CLEAR t_attachment.
REFRESH t_attachment.
t_attachment[] = it_attach[].
Describe the body of the message
CLEAR t_packing_list.
REFRESH t_packing_list.
t_packing_list-transf_bin = space.
t_packing_list-head_start = 1.
t_packing_list-head_num = 0.
t_packing_list-body_start = 1.
DESCRIBE TABLE it_message LINES t_packing_list-body_num.
t_packing_list-doc_type = 'RAW'.
APPEND t_packing_list.
Create attachment notification
t_packing_list-transf_bin = 'X'.
t_packing_list-head_start = 1.
t_packing_list-head_num = 1.
t_packing_list-body_start = 1.
DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
t_packing_list-doc_type = ld_format.
t_packing_list-obj_descr = ld_attdescription.
t_packing_list-obj_name = ld_attfilename.
t_packing_list-doc_size = t_packing_list-body_num * 255.
APPEND t_packing_list.
Add the recipients email address
CLEAR t_receivers.
REFRESH t_receivers.
t_receivers-rec_type = 'U'.
t_receivers-com_type = 'INT'.
t_receivers-notif_del = 'X'.
t_receivers-notif_ndel = 'X'.
CLEAR gt_mail.
SELECT SINGLE * FROM zmail INTO gt_mail
WHERE grpnr = '1'.
IF NOT gt_mail-mail1 IS INITIAL.
t_receivers-receiver = gt_mail-mail1.
APPEND t_receivers.
ENDIF.
IF NOT gt_mail-mail2 IS INITIAL.
t_receivers-receiver = gt_mail-mail2.
APPEND t_receivers.
ENDIF.
IF NOT gt_mail-mail3 IS INITIAL.
t_receivers-receiver = gt_mail-mail3.
APPEND t_receivers.
ENDIF.
IF NOT gt_mail-mail4 IS INITIAL.
t_receivers-receiver = gt_mail-mail4.
APPEND t_receivers.
ENDIF.
LOOP AT gt_mail.
t_receivers-receiver = gt_mail-mailid..
APPEND t_receivers.
ENDLOOP.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = w_doc_data
put_in_outbox = 'X'
sender_address = ld_sender_address
sender_address_type = ld_sender_address_type
commit_work = 'X'
IMPORTING
sent_to_all = w_sent_all
TABLES
packing_list = t_packing_list
contents_bin = t_attachment
contents_txt = it_message
receivers = t_receivers
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8.
Populate zerror return code
ld_error = sy-subrc.
Populate zreceiver return code
LOOP AT t_receivers.
ld_receiver = t_receivers-retrn_code.
ENDLOOP.
ENDFORM. " send_file_as_email_attachment
Data Declaration ************************************
DATA : handle LIKE sy-tabix.
data itab like kna1 occurs 0 with header line.
data: text(50) type c.
data: spoolid type TSP01-RQIDENT.
DATA : gt_listobject LIKE abaplist OCCURS 10 .
DATA : gt_objcont LIKE soli OCCURS 10 WITH HEADER LINE.
DATA : gt_objcont1 LIKE soli OCCURS 10 WITH HEADER LINE.
DATA : gt_objhead LIKE soli OCCURS 10 WITH HEADER LINE.
DATA : gt_att_head LIKE soli OCCURS 10 WITH HEADER LINE.
DATA : gt_receivers LIKE soos1 OCCURS 10 WITH HEADER LINE.
DATA : gt_packing_list LIKE soxpl OCCURS 10 WITH HEADER LINE.
DATA : gt_so_ali LIKE soli OCCURS 100 WITH HEADER LINE.
DATA : gt_so_ali1 LIKE soli OCCURS 100 WITH HEADER LINE.
DATA : gt_document_data LIKE sood1.
DATA: lineno TYPE i , length TYPE i , size TYPE i.
DATA: gt_message LIKE soli OCCURS 10 WITH HEADER LINE,
gt_message1 LIKE soli OCCURS 10 WITH HEADER LINE.
DATA: gt_scheme LIKE ztrc_scheme OCCURS 0 WITH HEADER LINE,
gt_mail LIKE zmail_prov OCCURS 0 WITH HEADER LINE.
gt_mail LIKE zmail." occurs 0 with header line.
DATA: gd_recsize TYPE i.
Spool IDs
TYPES: BEGIN OF t_tbtcp.
INCLUDE STRUCTURE tbtcp.
TYPES: END OF t_tbtcp.
DATA: it_tbtcp TYPE STANDARD TABLE OF t_tbtcp INITIAL SIZE 0,
wa_tbtcp TYPE t_tbtcp.
Job Runtime Parameters
DATA: gd_eventid LIKE tbtcm-eventid,
gd_eventparm LIKE tbtcm-eventparm,
gd_external_program_active LIKE tbtcm-xpgactive,
gd_jobcount LIKE tbtcm-jobcount,
gd_jobname LIKE tbtcm-jobname,
gd_stepcount LIKE tbtcm-stepcount,
gd_error TYPE sy-subrc,
gd_reciever TYPE sy-subrc.
DATA: w_recsize TYPE i.
DATA: gd_subject LIKE sodocchgi1-obj_descr,
it_mess_bod LIKE solisti1 OCCURS 0 WITH HEADER LINE,
it_mess_att LIKE solisti1 OCCURS 0 WITH HEADER LINE,
gd_sender_type LIKE soextreci1-adr_typ,
gd_attachment_desc TYPE so_obj_nam,
gd_attachment_name TYPE so_obj_des.
Spool to PDF conversions
DATA: gd_spool_nr LIKE tsp01-rqident,
gd_destination LIKE rlgrap-filename,
gd_bytecount LIKE tst01-dsize,
gd_buffer TYPE string.
Binary store for PDF
DATA: BEGIN OF it_pdf_output OCCURS 0.
INCLUDE STRUCTURE tline.
DATA: END OF it_pdf_output.
CONSTANTS: c_dev LIKE sy-sysid VALUE 'DEV',
c_no(1) TYPE c VALUE ' ',
c_device(4) TYPE c VALUE 'LOCL'.
DATA: check TYPE c,
days TYPE i.
<b></b><b></b><b></b>Hi Prashant,
Thanks for your reply. Really it is very useful one.
In this, the output list is getting populated into spool and to pdf.
But my requirement sending the internal table contents to spool directly without dispalying in the output list.
I did the program like the above mentioned one already. But my requirement is not that one.
Regards
chakradhar -
Hi....
I have an Interface which actually downloads the "MATERIAL MASTER DATA" from SAP to a flat file.
The current o/p of the interface looks like:
MAT NO. MAT DESCRIPTION Subst. Mat no......
Now they askd me to add 3 more fields to that existing program.
those are:
1.OUTSERT No.
2.MEDICATION PART No.
3.AWP PRICE.
So I have written 2 FORMS to retrieve these things.
1st FORM is for getting OUTSERT and MED. PART No.
2nd FORM for AWP PRICE.
(1) OUTSERT: This we get from STPO-IDNRK field. similarly
(2) MED. PART NO.: This also is from STPO-IDNRK field.
The method I used for getting these two things is:
Basically the OUTSERT and MED PART NO. is nothing but the BOM COMPONENTS [STPO-IDNRK].
There is a simple difference between these two things:
If the BOM Component contains 'O' or 'OP' in that value then it is taken as OUTSERT.
For Eg: If STPO-IDNRK value is 73543O or 98723OP then it is OUTSERT.
and If STPO-IDNRK value is 65489M or 68785MP then it is MED. PART NO.
and we have two conditions to be satisfied to calculate these two things,
1.The Material Group[MARA-MATKL] should be 'OST' or 'OSP'.
means MARA-MATKL = 'OST' or 'OSP'.
2.The Alternative BOM Text[STKO-STKTX] should be 'UNRESTRICTED'.
means STKO-STKTX = 'UNRESTRICTED'.
Coming to AWP PRICE, it should be get from field RATE[KONP-KBETR].
I have used tables STKO, STPO to get Outsert and Med. Part No and A505, KONP for AWP Price...
I have highlighted the part of the code which I have included in the existing program....
But there are some problems with that code...so i'm not getting results....
Plz look at the code and let me know wher I've gone wrong...
Thanks much,
The code is:
REPORT Z02.
Table definitions ----------------------------------------------------
TABLES: AUSP, " Characteristic Values
CABN, " Characteristic
CAWN, " Characteristic values
CAWNT, " Value Texts
LFA1, " Vendor master (general section)
MAKT, " Material Descriptions
MARA, " Material Master: General Data
MARM, " Units of Measure
MBEW, " Material Valuation
MVKE, " Material Master: Sales Data
TVMST, " Materials: SD Status: Texts
TVM3T, " Material pricing group 3: Description
TVM5T, " Material pricing group 5: Description
KOTD001, " Conditions: Substitution - Sample Structure
KONDD, " Material Substitution - Data Division
<b>mast,
stko,
stpo,
a505,
konp.</b>
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TITLE1.
SELECT-OPTIONS: S_BWKEY FOR MBEW-BWKEY
MEMORY ID DEFAULT_BWKEY OBLIGATORY
No-Extension No Intervals.
SELECTION-SCREEN END OF BLOCK B1.
PARAMETERS:
MATLFILE(100) LOWER CASE OBLIGATORY
DEFAULT '/sapinterface/ebusiness/matlfile'.
Constants ------------------------------------------------------------
CONSTANTS:
ZERO_DEC_3 TYPE P DECIMALS 3 VALUE 0,
ZEROS(9) TYPE N VALUE 0,
REC_TYPE(2) VALUE 'MM',
DELIMETER_QUOTE VALUE '"',
BEGIN OF DEFAULTS,
BWTAR LIKE MBEW-BWTAR VALUE SPACE,
VKORG LIKE MVKE-VKORG VALUE '1000',
VTWEG LIKE MVKE-VTWEG VALUE '10',
END OF DEFAULTS.
constants:
c_uncpath_material(43)
value '/sapinterface/unconverted/zvppo102_matlfile',
c_final_path(44)
value '/sapinterface/ebusiness/' ,
c_uncpath(26)
value '/sapinterface/unconverted/' .
Data Elements --------------------------------------------------------
DATA: PROGNAME LIKE SY-REPID,
PROG_START_DATE LIKE SY-DATUM,
PROG_START_TIME LIKE SY-UZEIT,
WRITE_COUNT TYPE I,
OUTFILE(100),
WK_STPRS LIKE MBEW-STPRS,
WK_AUSP LIKE AUSP,
WK_CABN LIKE CABN,
WK_MARA LIKE MARA,
WK_MARM LIKE MARM.
DATA: BEGIN OF MATERIAL_DATA occurs 0,
DELIMITER_START,
REC_TYPE LIKE REC_TYPE,
MATNR LIKE MARA-MATNR,
MAKTX LIKE MAKT-MAKTX,
SMATN LIKE KONDD-SMATN,
SMATN_START LIKE KOTD001-DATAB,
SMATN_END LIKE KOTD001-DATBI,
VMSTA LIKE MVKE-VMSTA,
VMSTB LIKE TVMST-VMSTB,
LAEDA LIKE MARA-LAEDA,
AENAM LIKE MARA-AENAM,
VENDOR_NUM LIKE MARA-MFRNR,
VENDOR_NM LIKE LFA1-NAME1,
PROD_LINE_CD LIKE MVKE-MVGR5,
PROD_LINE_DSC(20),
DEA_SCH_ID LIKE MVKE-MVGR3,
DEA_SCH_DSC(20),
NORMT LIKE MARA-NORMT,
STPRS(13),
LOGO_DESC(30),
PRESCRIPT_FLAG(1),
THER_CLASS(5),
THER_CLASS_DSC(30),
THER_SUB_CLASS(5),
THER_SUB_CLASS_DSC(30),
THER_EQUIV(2),
ITEM_PACKAGE_SIZE(10),
ITEM_PACKAGE_TYPE(2),
DOSAGE_FORM(3),
DOSAGE_FORM_DSC(30),
DOSE_ADMIN(3),
DOSE_ADMIN_DSC(30),
BOTTLE_SIZE(6),
BRAND_NAME(25),
BRAND_DISTR(20),
BRAND_COLOR(20),
BRAND_SHAPE(15),
ANDA_DATE LIKE SY-DATUM,
ANDA_NUMBER(9),
BIO_STUDY,
DESI_INDICATOR,
DRUG_TERM_DT LIKE SY-DATUM,
FDA_APPRV_DT LIKE SY-DATUM,
ITEM_REG_NM(30),
MARKET_DT LIKE SY-DATUM,
PRODUCT_COLOR(20),
PRODUCT_FLAVOR(15),
PRODUCT_SHAPE(15),
PRODUCT_STRENGTH(18),
MEINS LIKE MARA-MEINS,
BEGIN OF BASE_MEASURES,
WEIGHT(15), "* like mara-brgew
WT_UNIT LIKE MARA-GEWEI,
VOLUM(15), "* like mara-volum,
VOL_UNIT LIKE MARA-VOLEH,
PKG_LENGTH(15), "* like mara-laeng
PKG_WIDTH(15), "* like mara-breit
PKG_HEIGHT(15), "* like mara-hoehe
DIM_UNIT LIKE MARA-MEABM,
END OF BASE_MEASURES,
INR_CRTN_COUNT(6), "* like marm-umrez
INR_CRTN_MEASURES LIKE MATERIAL_DATA-BASE_MEASURES,
CASE_COUNT(6), "* like marm-umrez
CASE_MEASURES LIKE MATERIAL_DATA-BASE_MEASURES,
ITEM_NOTE(500),
DELIMITER_END,
<b>component like stpo-idnrk,
mguide like stpo-idnrk,
awp like konp-kbetr,</b>
END OF MATERIAL_DATA.
DATA : F_M_uncFILE(100) . " Material file(unconverted)
DATA: W_BRM(3) Value 'BRM'.
<b>data: str1(2) type c value 'O',
str2(2) type c value 'OP',
str3(2) type c value 'M',
str4(2) type c value 'MP'.</b>
<b>data: begin of i_material,
matnr like mara-matnr,
rate like konp-kbetr,
end of i_material.
data: begin of i_outsert occurs 0,
matnr like mara-matnr,
stktx like stko-stktx,
component like stpo-idnrk,
end of i_outsert.</b>
INITIALIZATION.
*--- Initialize text fields for selection screen.
TITLE1 = 'Set Default'.
SET PARAMETER ID 'DEFAULT_BWKEY' FIELD W_BRM.
START-OF-SELECTION.
PERFORM INITIAL_STUFF.
PERFORM MAIN_SELECT.
PERFORM WRAPUP.
Select all material master records for finished products.
FORM MAIN_SELECT.
SELECT MATNR
BISMT
LAEDA
AENAM
MEINS
BRGEW
GEWEI
VOLUM
VOLEH
LAENG
BREIT
HOEHE
MEABM
NORMT
INTO (MATERIAL_DATA-MATNR,
MATERIAL_DATA-SMATN,
MATERIAL_DATA-LAEDA,
MATERIAL_DATA-AENAM,
MATERIAL_DATA-MEINS,
WK_MARA-BRGEW,
MATERIAL_DATA-BASE_MEASURES-WT_UNIT,
WK_MARA-VOLUM,
MATERIAL_DATA-BASE_MEASURES-VOL_UNIT,
WK_MARA-LAENG,
WK_MARA-BREIT,
WK_MARA-HOEHE,
MATERIAL_DATA-BASE_MEASURES-DIM_UNIT,
MATERIAL_DATA-NORMT)
FROM MARA
WHERE MTART = 'FERT' "* Finished product
OR MTART = 'HAWA'
ORDER BY MATNR.
Assign default values for fields which may not be available.
PERFORM ASSIGN_DEFAULTS.
Get related data from other tables.
PERFORM GET_MATERIAL_DESCRIPTION.
PERFORM GET_STANDARD_PRICE.
PERFORM GET_MVKE.
PERFORM GET_MARM.
PERFORM GET_AUSP.
PERFORM GET_SUBSTITUTE_MATNR.
PERFORM GET_BASIC_DATA_TEXT.
PERFORM GET_VENDOR_NAME.
<b>perform get_outsert.
perform get_awp.</b>
SEARCH MATERIAL_DATA FOR '"'.
IF SY-SUBRC = 0.
REPLACE '"' WITH ' ' INTO MATERIAL_DATA.
ENDIF.
MATERIAL_DATA-DELIMITER_START = DELIMETER_QUOTE.
MATERIAL_DATA-DELIMITER_END = DELIMETER_QUOTE.
Write output record.
ADD 1 TO WRITE_COUNT.
TRANSFER MATERIAL_DATA TO F_M_UNCFILE .
Reinitialize work variables.
CLEAR: MATERIAL_DATA,
WK_STPRS,
WK_AUSP,
WK_CABN,
WK_MARA,
WK_MARM.
ENDSELECT.
ENDFORM. " main_select
Assign numeric fields to character fields for output.
FORM ASSIGN_DEFAULTS.
MATERIAL_DATA-REC_TYPE = REC_TYPE.
MATERIAL_DATA-BASE_MEASURES-WEIGHT = WK_MARA-BRGEW.
MATERIAL_DATA-BASE_MEASURES-VOLUM = WK_MARA-VOLUM.
MATERIAL_DATA-BASE_MEASURES-PKG_LENGTH = WK_MARA-LAENG.
MATERIAL_DATA-BASE_MEASURES-PKG_WIDTH = WK_MARA-BREIT.
MATERIAL_DATA-BASE_MEASURES-PKG_HEIGHT = WK_MARA-HOEHE.
Set character fields to 0 in case not found on DB.
MATERIAL_DATA-ANDA_NUMBER = ZEROS. "* ???
MATERIAL_DATA-ITEM_PACKAGE_SIZE = 0.
MATERIAL_DATA-INR_CRTN_COUNT = 0.
MATERIAL_DATA-CASE_COUNT = 0.
MATERIAL_DATA-INR_CRTN_MEASURES-WEIGHT = ZERO_DEC_3.
MATERIAL_DATA-INR_CRTN_MEASURES-VOLUM = ZERO_DEC_3.
MATERIAL_DATA-INR_CRTN_MEASURES-PKG_LENGTH = ZERO_DEC_3.
MATERIAL_DATA-INR_CRTN_MEASURES-PKG_WIDTH = ZERO_DEC_3.
MATERIAL_DATA-INR_CRTN_MEASURES-PKG_HEIGHT = ZERO_DEC_3.
MOVE-CORRESPONDING MATERIAL_DATA-INR_CRTN_MEASURES
TO MATERIAL_DATA-CASE_MEASURES.
ENDFORM. " assign_defaults
FORM GET_VENDOR_NAME.
SELECT SINGLE NAME1
INTO MATERIAL_DATA-VENDOR_NM
FROM LFA1
WHERE LIFNR = MATERIAL_DATA-VENDOR_NUM.
ENDFORM. " get_vendor_name
FORM GET_OUTSERT *
<b>form get_outsert.
select matnr from mara into corresponding fields of table material_data
where mtart = 'FERT' or mtart = 'HAWA'.
select didnrk amatnr
into (i_outsert-component, i_outsert-matnr)
from stpo as d
inner join stko as c
on dstlnr = cstlnr
inner join mast as b
on cstlnr = bstlnr
inner join mara as a
on bmatnr = amatnr
for all entries IN material_data
where a~matnr = material_data-matnr.
append i_outsert.
endselect.
check i_outsert-stktx = 'UNRESTRICTED'.
if ( i_outsert-component cs str1 ) or ( i_outsert-component cs str2 ).
move i_outsert-component to material_data-component.
append material_data.
elseif ( i_outsert-component cs str3 ) or
( i_outsert-component cs str4 ).
move i_outsert-component to material_data-mguide.
append material_data.
endif.
modify material_data transporting component
where matnr = i_outsert-matnr.
endform. "get_outsert</b>
FORM GET_AWP *
<b>form get_awp.
select matnr from mara into corresponding fields of table material_data
where mtart = 'FERT' or mtart = 'HAWA'.
select bmatnr ckbetr into (i_material-matnr, i_material-rate)
from konp as c
inner join a505 as b
on cknumh = bknumh
inner join mara as a
on bmatnr = amatnr
for all entries IN material_data
where a~matnr = material_data-matnr
and b~kappl = 'V'
and b~kschl = 'ZR10'
and b~vkorg = '1000'
and b~pltyp = '01'
and b~datbi > sy-datum
and b~datab < sy-datum.
append i_material.
endselect.
move i_material-rate to material_data-awp.
append material_data.
modify material_data transporting awp
where matnr = i_material-matnr.
endform. "get_awp</b>
FORM GET_MATERIAL_DESCRIPTION.
SELECT SINGLE MAKTX
INTO MATERIAL_DATA-MAKTX
FROM MAKT
WHERE MATNR = MATERIAL_DATA-MATNR
AND SPRAS = SY-LANGU.
ENDFORM. " get_material_description
FORM GET_STANDARD_PRICE.
data: l_vprsv like mbew-vprsv,
l_verpr like mbew-verpr.
clear: l_Vprsv, l_verpr.
SELECT SINGLE VPRSV VERPR stprs
into (l_vprsv, l_verpr, WK_stprs)
FROM MBEW
WHERE MATNR = MATERIAL_DATA-MATNR
AND BWKEY IN S_BWKEY
AND BWTAR = DEFAULTS-BWTAR.
the need to change the assumption
that standard price is housed in MBEW-STPRS. This does not apply to
plant US18, so need to check to see what the price control field is
(MBEW-VPRSV) and if it is S, use standard price, if it is V, use the
moving average price.
IF L_VPRSV = 'V'.
WK_STPRS = L_VERPR.
ENDIF.
MATERIAL_DATA-STPRS = WK_STPRS.
ENDFORM. " get_standard_price
FORM GET_MVKE.
SELECT SINGLE MVGR3
VMSTA
MVGR5
INTO (MATERIAL_DATA-DEA_SCH_ID,
MATERIAL_DATA-VMSTA,
MATERIAL_DATA-PROD_LINE_CD)
FROM MVKE
WHERE MATNR = MATERIAL_DATA-MATNR
AND VKORG = DEFAULTS-VKORG
AND VTWEG = DEFAULTS-VTWEG.
IF SY-SUBRC = 0.
PERFORM GET_DEA_ID_DSC.
PERFORM GET_PROD_LINE_DSC.
PERFORM GET_VMSTB.
ENDIF.
ENDFORM. " get_mvke
FORM GET_DEA_ID_DSC.
SELECT SINGLE BEZEI
INTO MATERIAL_DATA-DEA_SCH_DSC
FROM TVM3T
WHERE SPRAS = SY-LANGU
AND MVGR3 = MATERIAL_DATA-DEA_SCH_ID.
ENDFORM. " get_dea_id_dsc
FORM GET_PROD_LINE_DSC.
SELECT SINGLE BEZEI
INTO MATERIAL_DATA-PROD_LINE_DSC
FROM TVM5T
WHERE SPRAS = SY-LANGU
AND MVGR5 = MATERIAL_DATA-PROD_LINE_CD.
ENDFORM. " form get_prod_line_dsc
FORM GET_VMSTB.
SELECT SINGLE VMSTB
INTO MATERIAL_DATA-VMSTB
FROM TVMST
WHERE SPRAS = SY-LANGU
AND VMSTA = MATERIAL_DATA-VMSTA.
ENDFORM. " form get_vmstb
Get measurements, etc. for inner carton and case from the MARM table.
FORM GET_MARM.
SELECT MEINH " alternative unit of measure for stockkeeping unit
UMREZ " numerator for conversion to base units of measure
LAENG " length
BREIT " width
HOEHE " height
MEABM " unit of dimension for length/width/height
VOLUM " volume
VOLEH " volume unit
BRGEW " gross weight
GEWEI " unit of weight
INTO (WK_MARM-MEINH,
WK_MARM-UMREZ,
WK_MARM-LAENG,
WK_MARM-BREIT,
WK_MARM-HOEHE,
WK_MARM-MEABM,
WK_MARM-VOLUM,
WK_MARM-VOLEH,
WK_MARM-BRGEW,
WK_MARM-GEWEI)
FROM MARM
WHERE MATNR = MATERIAL_DATA-MATNR
AND MEINH IN ('CS', 'PAK').
PERFORM EVALUATE_MEINH.
CLEAR WK_MARM.
ENDSELECT.
ENDFORM. " get_marm
Populate output record fields based on alternative unit of measure.
FORM EVALUATE_MEINH.
CASE WK_MARM-MEINH.
WHEN 'CS'.
MATERIAL_DATA-CASE_COUNT = WK_MARM-UMREZ.
MATERIAL_DATA-CASE_MEASURES-WEIGHT = WK_MARM-BRGEW.
MATERIAL_DATA-CASE_MEASURES-WT_UNIT = WK_MARM-GEWEI.
MATERIAL_DATA-CASE_MEASURES-VOLUM = WK_MARM-VOLUM.
MATERIAL_DATA-CASE_MEASURES-VOL_UNIT = WK_MARM-VOLEH.
MATERIAL_DATA-CASE_MEASURES-PKG_LENGTH = WK_MARM-LAENG.
MATERIAL_DATA-CASE_MEASURES-PKG_WIDTH = WK_MARM-BREIT.
MATERIAL_DATA-CASE_MEASURES-PKG_HEIGHT = WK_MARM-HOEHE.
MATERIAL_DATA-CASE_MEASURES-DIM_UNIT = WK_MARM-MEABM.
WHEN 'PAK'.
MATERIAL_DATA-INR_CRTN_COUNT = WK_MARM-UMREZ.
MATERIAL_DATA-INR_CRTN_MEASURES-WEIGHT = WK_MARM-BRGEW.
MATERIAL_DATA-INR_CRTN_MEASURES-WT_UNIT = WK_MARM-GEWEI.
MATERIAL_DATA-INR_CRTN_MEASURES-VOLUM = WK_MARM-VOLUM.
MATERIAL_DATA-INR_CRTN_MEASURES-VOL_UNIT = WK_MARM-VOLEH.
MATERIAL_DATA-INR_CRTN_MEASURES-PKG_LENGTH = WK_MARM-LAENG.
MATERIAL_DATA-INR_CRTN_MEASURES-PKG_WIDTH = WK_MARM-BREIT.
MATERIAL_DATA-INR_CRTN_MEASURES-PKG_HEIGHT = WK_MARM-HOEHE.
MATERIAL_DATA-INR_CRTN_MEASURES-DIM_UNIT = WK_MARM-MEABM.
ENDCASE.
ENDFORM. " evaluate_meinh
Get characterics from the AUSP & CABN tables.
FORM GET_AUSP.
*--- Get object number for classification lookup.
data: l_objek like ausp-objek.
clear l_objek.
select cuobj into l_objek from inob up to 1 rows
where klart = '001'
and obtab = 'MARA'
and objek = material_data-matnr.
endselect.
SELECT A~ATINN " internal characteristic
A~ATWRT " characteristic value
A~ATAWE " unit of measurement
A~ATAW1 " unit of measurement
A~ATFLV " internal floating point from (value if date)
C~ATNAM " characteristic name
INTO (WK_AUSP-ATINN,
WK_AUSP-ATWRT,
WK_AUSP-ATAWE,
WK_AUSP-ATAW1,
WK_AUSP-ATFLV,
WK_CABN-ATNAM)
FROM AUSP AS A INNER JOIN
CABN AS C ON AATINN = CATINN
where a~objek = l_objek
AND C~ATNAM LIKE 'MM_%'
AND A~LKENZ = SPACE.
PERFORM EVALUATE_CHARACTERISTIC.
ENDSELECT.
ENDFORM. " get_ausp
Populate output record fields based on characteristic type.
FORM EVALUATE_CHARACTERISTIC.
DATA: SIZE_TEMP TYPE I.
CASE WK_CABN-ATNAM.
when 'MM_BOTTLE_SIZE'.
MATERIAL_DATA-BOTTLE_SIZE = WK_AUSP-ATWRT.
when 'MM_BRAND_COLOR'.
MATERIAL_DATA-BRAND_COLOR = WK_AUSP-ATWRT.
WHEN 'MM_BRAND_DISTRIBUTOR'.
MATERIAL_DATA-BRAND_DISTR = WK_AUSP-ATWRT.
when 'MM_BRAND_NAME'.
MATERIAL_DATA-BRAND_NAME = WK_AUSP-ATWRT.
when 'MM_BRAND_SHAPE'.
MATERIAL_DATA-BRAND_SHAPE = WK_AUSP-ATWRT.
WHEN 'MM_DOSAGE_FORM'.
MATERIAL_DATA-DOSAGE_FORM = WK_AUSP-ATWRT.
PERFORM GET_CHARACTERISTIC_DSC
USING WK_AUSP-ATINN
WK_AUSP-ATWRT
CHANGING MATERIAL_DATA-DOSAGE_FORM_DSC.
when 'MM_DOSE_ADMINISTRATION'.
MATERIAL_DATA-DOSE_ADMIN = WK_AUSP-ATWRT.
PERFORM GET_CHARACTERISTIC_DSC
USING WK_AUSP-ATINN
WK_AUSP-ATWRT
CHANGING MATERIAL_DATA-DOSE_ADMIN_DSC.
WHEN 'MM_ITEM_PACKAGE_SIZE'.
SIZE_TEMP = WK_AUSP-ATFLV.
MATERIAL_DATA-ITEM_PACKAGE_SIZE = SIZE_TEMP.
WHEN 'MM_ITEM_PACKAGE_TYPE'.
MATERIAL_DATA-ITEM_PACKAGE_TYPE = WK_AUSP-ATWRT.
when 'MM_LOGO_DESC'.
MATERIAL_DATA-LOGO_DESC = WK_AUSP-ATWRT.
when 'MM_PRESCRIPTION_FLAG'.
MATERIAL_DATA-PRESCRIPT_FLAG = WK_AUSP-ATWRT.
when 'MM_THERAPEUTIC_CLASS'.
MATERIAL_DATA-THER_CLASS = WK_AUSP-ATWRT.
PERFORM GET_CHARACTERISTIC_DSC
USING WK_AUSP-ATINN
WK_AUSP-ATWRT
CHANGING MATERIAL_DATA-THER_CLASS_DSC.
when 'MM_THERAPEUTIC_SUB_CLASS'.
MATERIAL_DATA-THER_SUB_CLASS = WK_AUSP-ATWRT.
PERFORM GET_CHARACTERISTIC_DSC
USING WK_AUSP-ATINN
WK_AUSP-ATWRT
CHANGING MATERIAL_DATA-THER_SUB_CLASS_DSC.
WHEN 'MM_THERAPEUTIC_RATING'.
MATERIAL_DATA-THER_EQUIV = WK_AUSP-ATWRT.
when 'MM_ANDA_DATE'.
PERFORM CONVERT_TO_DATE USING WK_AUSP-ATFLV
CHANGING MATERIAL_DATA-ANDA_DATE.
when 'MM_ANDA_NUMBER'.
MATERIAL_DATA-ANDA_NUMBER = WK_AUSP-ATWRT.
when 'MM_BIO_STUDY'.
MATERIAL_DATA-BIO_STUDY = WK_AUSP-ATWRT.
when 'MM_DESI_INDICATOR'.
MATERIAL_DATA-DESI_INDICATOR = WK_AUSP-ATWRT.
when 'MM_DRUG_TERMINATION_DATE'.
PERFORM CONVERT_TO_DATE USING WK_AUSP-ATFLV
CHANGING MATERIAL_DATA-DRUG_TERM_DT.
when 'MM_FDA_APPROVAL_DATE'.
PERFORM CONVERT_TO_DATE USING WK_AUSP-ATFLV
CHANGING MATERIAL_DATA-FDA_APPRV_DT.
when 'MM_ITEM_REGULATORY_NAME'.
MATERIAL_DATA-ITEM_REG_NM = WK_AUSP-ATWRT.
when 'MM_MARKET_DATE'.
PERFORM CONVERT_TO_DATE USING WK_AUSP-ATFLV
CHANGING MATERIAL_DATA-MARKET_DT.
when 'MM_PRODUCT_COLOR'.
MATERIAL_DATA-PRODUCT_COLOR = WK_AUSP-ATWRT.
when 'MM_PRODUCT_FLAVOR'.
MATERIAL_DATA-PRODUCT_FLAVOR = WK_AUSP-ATWRT.
when 'MM_PRODUCT_SHAPE'.
MATERIAL_DATA-PRODUCT_SHAPE = WK_AUSP-ATWRT.
when 'MM_PRODUCT_STRENGTH'.
MATERIAL_DATA-PRODUCT_STRENGTH = WK_AUSP-ATWRT.
WHEN 'MM_VENDOR'.
MATERIAL_DATA-VENDOR_NUM = WK_AUSP-ATWRT.
ENDCASE.
CLEAR SIZE_TEMP.
ENDFORM. " evaluate_characteristic
Get descriptive text from CAWN & CAWNT for characteristics.
FORM GET_CHARACTERISTIC_DSC USING PARM_ATINN
PARM_ATWRT
CHANGING PARM_DSC_TEXT.
CLEAR PARM_DSC_TEXT.
SELECT SINGLE ATWTB
INTO PARM_DSC_TEXT
FROM CAWN AS C1 INNER JOIN
CAWNT AS C2 ON C1ATINN = C2ATINN
AND C1ATZHL = C2ATZHL
WHERE C1~ATINN = PARM_ATINN
AND C1~ATWRT = PARM_ATWRT
AND C2~SPRAS = SY-LANGU
AND C2~ADZHL = 0.
ENDFORM. " get_characteristic_dsc
Call function CTCV_CONVERT_FLOAT_TO_DATE to convert floating point
number to a date in yyyymmdd format.
form convert_to_date using date
changing conv_date.
clear conv_date.
data: wrk_date(30) type c."Format YYYYMMDD changing it to MMDDYYYY
call function 'CTCV_CONVERT_FLOAT_TO_DATE'
EXPORTING
float = date
IMPORTING
date = wrk_date
EXCEPTIONS
others = 1.
CONV_DATE = WRK_DATE.
ENDFORM. " convert_to_date
Get substitute material number.
FORM GET_SUBSTITUTE_MATNR.
SELECT SINGLE SMATN
DATAB
DATBI
INTO (MATERIAL_DATA-SMATN,
MATERIAL_DATA-SMATN_START,
MATERIAL_DATA-SMATN_END)
FROM KOTD001 INNER JOIN
KONDD ON KOTD001~KNUMH = KONDD~KNUMH
WHERE KAPPL = 'V' "* Sales/Distribution
AND KSCHL = 'A001' "* Material Entered
AND MATWA = MATERIAL_DATA-MATNR
AND DATBI >= SY-DATUM
AND DATAB <= SY-DATUM
AND SUGRD = SPACE.
ENDFORM. " get_substitute_matnr.
Get basic data text for material item note.
If this is longer than 500 bytes, it will be truncated at 500.
FORM GET_BASIC_DATA_TEXT.
DATA: BEGIN OF TEXT_HEADER.
INCLUDE STRUCTURE THEAD. "* SAPscript: Text Header
DATA: END OF TEXT_HEADER.
DATA: BEGIN OF TEXT_LINES OCCURS 100.
INCLUDE STRUCTURE TLINE. "* SAPscript: text lines
DATA: END OF TEXT_LINES.
DATA: ITEM_NOTE_LENGTH TYPE I.
Set up text header for call to READ_TEXT.
TEXT_HEADER-TDOBJECT = 'MATERIAL'.
TEXT_HEADER-TDNAME = MATERIAL_DATA-MATNR.
TEXT_HEADER-TDID = 'GRUN'. "* Basic data text
TEXT_HEADER-TDSPRAS = SY-LANGU.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
ID = TEXT_HEADER-TDID
LANGUAGE = TEXT_HEADER-TDSPRAS
NAME = TEXT_HEADER-TDNAME
OBJECT = TEXT_HEADER-TDOBJECT
ARCHIVE_HANDLE = 0
IMPORTING
HEADER =
TABLES
LINES = TEXT_LINES
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8.
CASE SY-SUBRC.
WHEN 0.
LOOP AT TEXT_LINES.
IF SY-TABIX = 1.
MATERIAL_DATA-ITEM_NOTE = TEXT_LINES-TDLINE.
ELSE.
Pass up to 500 bytes to Siebel.
ITEM_NOTE_LENGTH = STRLEN( MATERIAL_DATA-ITEM_NOTE ).
IF ITEM_NOTE_LENGTH > 498.
EXIT.
ELSE.
CONCATENATE MATERIAL_DATA-ITEM_NOTE
TEXT_LINES-TDLINE
INTO MATERIAL_DATA-ITEM_NOTE
SEPARATED BY SPACE.
ENDIF.
ENDIF.
ENDLOOP.
WHEN 4.
Not found; this is normal if no text was entered.
WHEN OTHERS.
MESSAGE E000(38) WITH 'Bad call to function READ_TEXT'.
ENDCASE.
ENDFORM. " get_substitute_matnr
Open files, set initial conditions, etc.
FORM INITIAL_STUFF.
data : w_length type i .
PROGNAME = SY-REPID.
WRITE: / 'Program: ', PROGNAME.
WRITE: / 'Execution start date: ', SY-DATUM.
WRITE: / 'Execution start time: ', SY-UZEIT.
WRITE: / .
CALL FUNCTION 'Z_SET_INTERFACE_FILENAME'
EXPORTING
INTERFACE_NAME = MATLFILE
DATE_TIME_SW = 'X'
EXTENSION_TYPE = 'txt'
IMPORTING
PATHNAME = OUTFILE
EXCEPTIONS
OTHERS = 1.
f_m_uncfile = outfile .
clear w_length.
w_length = strlen( matlfile ).
replace matlfile with c_uncpath_material into F_M_UNCFILE length
w_length .
open dataset F_m_UNCFILE for output in text mode .
if sy-subrc <> 0 .
MESSAGE E000(38) WITH 'Unable to open file ' F_m_UNCFILE.
endif.
ENDFORM. " initial_stuff.
Close files, etc.
FORM WRAPUP.
CLOSE DATASET F_M_UNCFILE.
PERFORM CONVERT_FILE.
WRITE: / 'Material interface file name: ', OUTFILE,
/ 'Number of records written to material file: ', WRITE_COUNT.
endform.
This form is included for testing and is performed if the test_rec
checkbox is checked.
FORM WRITE_FORMATTED_TEST_RECORD.
WRITE: /,
/ 'Beginning of new record :',
/ 'Start Delimiter :|' NO-GAP,
MATERIAL_DATA-DELIMITER_START NO-GAP, '|',
/ 'Record Type :|' NO-GAP,
MATERIAL_DATA-REC_TYPE NO-GAP, '|',
/ 'Material Number :|' NO-GAP,
MATERIAL_DATA-MATNR NO-GAP USING NO EDIT MASK, '|',
/ 'Material Description :|' NO-GAP,
MATERIAL_DATA-MAKTX NO-GAP, '|',
/ 'Substitute Material Number :|' NO-GAP,
MATERIAL_DATA-SMATN NO-GAP, '|',
/ 'Substitute Start Date :|' NO-GAP,
MATERIAL_DATA-SMATN_START NO-GAP, '|',
/ 'Substitute End Date :|' NO-GAP,
MATERIAL_DATA-SMATN_END NO-GAP, '|',
/ 'Status Code :|' NO-GAP,
MATERIAL_DATA-VMSTA NO-GAP, '|',
/ 'Status Description :|' NO-GAP,
MATERIAL_DATA-VMSTB NO-GAP, '|',
/ 'Date of last change :|' NO-GAP,
MATERIAL_DATA-LAEDA NO-GAP, '|',
/ 'User who changed record :|' NO-GAP,
MATERIAL_DATA-AENAM NO-GAP, '|',
/ 'Manufacturer Number :|' NO-GAP,
MATERIAL_DATA-VENDOR_NUM NO-GAP, '|',
/ 'Vendor Name :|' NO-GAP,
MATERIAL_DATA-VENDOR_NM NO-GAP, '|',
/ 'Product Line Code :|' NO-GAP,
MATERIAL_DATA-PROD_LINE_CD NO-GAP, '|',
/ 'Product Line Description :|' NO-GAP,
MATERIAL_DATA-PROD_LINE_DSC NO-GAP, '|',
/ 'DEA Schedule ID :|' NO-GAP,
MATERIAL_DATA-DEA_SCH_ID NO-GAP, '|',
/ 'DEA Schedule Description :|' NO-GAP,
MATERIAL_DATA-DEA_SCH_DSC NO-GAP, '|',
/ 'Labeller Code :|' NO-GAP,
MATERIAL_DATA-NORMT NO-GAP, '|',
/ 'Standard Price :|' NO-GAP,
MATERIAL_DATA-STPRS NO-GAP, '|',
/ 'Logo Description :|' NO-GAP,
MATERIAL_DATA-LOGO_DESC NO-GAP, '|',
/ 'Prescription Flag :|' NO-GAP,
MATERIAL_DATA-PRESCRIPT_FLAG NO-GAP, '|',
/ 'Therapeutic Class :|' NO-GAP,
MATERIAL_DATA-THER_CLASS NO-GAP, '|',
/ 'Therapeutic Class Description :|' NO-GAP,
MATERIAL_DATA-THER_CLASS_DSC NO-GAP, '|',
/ 'Therapeutic Subclass :|' NO-GAP,
MATERIAL_DATA-THER_SUB_CLASS NO-GAP, '|',
/ 'Therapeutic Subclass Description:|' NO-GAP,
MATERIAL_DATA-THER_SUB_CLASS_DSC NO-GAP, '|',
/ 'Therapeutic Equivalence :|' NO-GAP,
MATERIAL_DATA-THER_EQUIV NO-GAP, '|',
/ 'Item Package Size :|' NO-GAP,
MATERIAL_DATA-ITEM_PACKAGE_SIZE NO-GAP, '|',
/ 'Item Package Type :|' NO-GAP,
MATERIAL_DATA-ITEM_PACKAGE_TYPE NO-GAP, '|',
/ 'Dosage Form :|' NO-GAP,
MATERIAL_DATA-DOSAGE_FORM NO-GAP, '|',
/ 'Dosage Form Description :|' NO-GAP,
MATERIAL_DATA-DOSAGE_FORM_DSC NO-GAP, '|',
/ 'Dose Administration :|' NO-GAP,
MATERIAL_DATA-DOSE_ADMIN NO-GAP, '|',
/ 'Dose Administration Description :|' NO-GAP,
MATERIAL_DATA-DOSE_ADMIN_DSC NO-GAP, '|',
/ 'Bottle Size :|' NO-GAP,
MATERIAL_DATA-BOTTLE_SIZE NO-GAP, '|',
/ 'Brand Name :|' NO-GAP,
MATERIAL_DATA-BRAND_NAME NO-GAP, '|',
/ 'Brand Distributor :|' NO-GAP,
MATERIAL_DATA-BRAND_DISTR NO-GAP, '|',
/ 'Brand Color :|' NO-GAP,
MATERIAL_DATA-BRAND_COLOR NO-GAP, '|',
/ 'Brand Shape :|' NO-GAP,
MATERIAL_DATA-BRAND_SHAPE NO-GAP, '|',
/ 'ANDA Date :|' NO-GAP,
MATERIAL_DATA-ANDA_DATE NO-GAP, '|',
/ 'ANDA Number :|' NO-GAP,
MATERIAL_DATA-ANDA_NUMBER NO-GAP, '|',
/ 'Bio Study :|' NO-GAP,
MATERIAL_DATA-BIO_STUDY NO-GAP, '|',
/ 'DESI Indicator :|' NO-GAP,
MATERIAL_DATA-DESI_INDICATOR NO-GAP, '|',
/ 'Drug Term Date :|' NO-GAP,
MATERIAL_DATA-DRUG_TERM_DT NO-GAP, '|',
/ 'FDA Approval Date :|' NO-GAP,
MATERIAL_DATA-FDA_APPRV_DT NO-GAP, '|',
/ 'Item Regulatory Name :|' NO-GAP,
MATERIAL_DATA-ITEM_REG_NM NO-GAP, '|',
/ 'Market Date :|' NO-GAP,
MATERIAL_DATA-MARKET_DT NO-GAP, '|',
/ 'Product Color :|' NO-GAP,
MATERIAL_DATA-PRODUCT_COLOR NO-GAP, '|',
/ 'Product Flavor :|' NO-GAP,
MATERIAL_DATA-PRODUCT_FLAVOR NO-GAP, '|',
/ 'Product Shape :|' NO-GAP,
MATERIAL_DATA-PRODUCT_SHAPE NO-GAP, '|',
/ 'Product Strength :|' NO-GAP,
MATERIAL_DATA-PRODUCT_STRENGTH NO-GAP, '|',
/ 'Base Unit of Measure :|' NO-GAP,
MATERIAL_DATA-MEINS NO-GAP, '|',
/ 'Base Weight :|' NO-GAP,
MATERIAL_DATA-BASE_MEASURES-WEIGHT NO-GAP, '|',
/ 'Base Weight Unit :|' NO-GAP,
MATERIAL_DATA-BASE_MEASURES-WT_UNIT NO-GAP, '|',
/ 'Base Volume :|' NO-GAP,
MATERIAL_DATA-BASE_MEASURES-VOLUM NO-GAP, '|',
/ 'Base Volume Unit :|' NO-GAP,
MATERIAL_DATA-BASE_MEASURES-VOL_UNIT NO-GAP, '|',
/ 'Base Package Length :|' NO-GAP,
MATERIAL_DATA-BASE_MEASURES-PKG_LENGTH NO-GAP, '|',
/ 'Base Package Width :|' NO-GAP,
MATERIAL_DATA-BASE_MEASURES-PKG_WIDTH NO-GAP, '|',
/ 'Base Package Height :|' NO-GAP,
MATERIAL_DATA-BASE_MEASURES-PKG_HEIGHT NO-GAP, '|',
/ 'Base Dimension Unit :|' NO-GAP,
MATERIAL_DATA-BASE_MEASURES-DIM_UNIT NO-GAP, '|',
/ 'Inner Carton Count :|' NO-GAP,
MATERIAL_DATA-INR_CRTN_COUNT NO-GAP, '|',
/ 'Inner Carton Weight :|' NO-GAP,
MATERIAL_DATA-INR_CRTN_MEASURES-WEIGHT NO-GAP, '|',
/ 'Inner Carton Weight Unit :|' NO-GAP,
MATERIAL_DATA-INR_CRTN_MEASURES-WT_UNIT NO-GAP, '|',
/ 'Inner Carton Volume :|' NO-GAP,
MATERIAL_DATA-INR_CRTN_MEASURES-VOLUM NO-GAP, '|',
/ 'Inner Carton Volume Unit :|' NO-GAP,
MATERIAL_DATA-INR_CRTN_MEASURES-VOL_UNIT NO-GAP, '|',
/ 'Inner Carton Package Length :|' NO-GAP,
MATERIAL_DATA-INR_CRTN_MEASURES-PKG_LENGTH NO-GAP, '|',
/ 'Inner Carton Package Width :|' NO-GAP,
MATERIAL_DATA-INR_CRTN_MEASURES-PKG_WIDTH NO-GAP, '|',
/ 'Inner Carton Package Height :|' NO-GAP,
MATERIAL_DATA-INR_CRTN_MEASURES-PKG_HEIGHT NO-GAP, '|',
/ 'Inner Carton Dimension Unit :|' NO-GAP,
MATERIAL_DATA-INR_CRTN_MEASURES-DIM_UNIT NO-GAP, '|',
/ 'Case Count :|' NO-GAP,
MATERIAL_DATA-CASE_COUNT NO-GAP, '|',
/ 'Case Weight :|' NO-GAP,
MATERIAL_DATA-CASE_MEASURES-WEIGHT NO-GAP, '|',
/ 'Case Weight Unit :|' NO-GAP,
MATERIAL_DATA-CASE_MEASURES-WT_UNIT NO-GAP, '|',
/ 'Case Volume :|' NO-GAP,
MATERIAL_DATA-CASE_MEASURES-VOLUM NO-GAP, '|',
/ 'Case Volume Unit :|' NO-GAP,
MATERIAL_DATA-CASE_MEASURES-VOL_UNIT NO-GAP, '|',
/ 'Case Length :|' NO-GAP,
MATERIAL_DATA-CASE_MEASURES-PKG_LENGTH NO-GAP, '|',
/ 'Case Width :|' NO-GAP,
MATERIAL_DATA-CASE_MEASURES-PKG_WIDTH NO-GAP, '|',
/ 'Case Height :|' NO-GAP,
MATERIAL_DATA-CASE_MEASURES-PKG_HEIGHT NO-GAP, '|',
/ 'Case Dimension Unit :|' NO-GAP,
MATERIAL_DATA-CASE_MEASURES-DIM_UNIT NO-GAP, '|',
/ 'Item Note :|' NO-GAP,
MATERIAL_DATA-ITEM_NOTE NO-GAP, '|',
/ 'End Delimiter :|' NO-GAP,
MATERIAL_DATA-DELIMITER_END NO-GAP, '|',
ENDFORM. " write_formatted_test_record
Copy the output files to the appropriate archive folder.
FORM COPY_TO_ARCHIVE USING C_FILE.
DATA:
ARCHFILE(100),
COPYFILES(255),
ITAB LIKE BTCXPM OCCURS 0 WITH HEADER LINE,
W_LENGTH TYPE I ,
W_INFILE(100),
W_OUTFILE(100).
PERFORM BUILD_ARCHIVE_NAME USING C_FILE
CHANGING ARCHFILE.
CONCATENATE C_FILE C_UNCPATH INTO COPYFILES SEPARATED BY SPACE .
CALL FUNCTION 'SXPG_COMMAND_EXECUTE'
EXPORTING
COMMANDNAME = 'ZUNIXCOPY'
ADDITIONAL_PARAMETERS = COPYFILES
OPERATINGSYSTEM = SY-OPSYS
STDOUT = 'X'
STDERR = 'X'
TERMINATIONWAIT = 'X'
TABLES
EXEC_PROTOCOL = ITAB
EXCEPTIONS
NO_PERMISSION = 1
COMMAND_NOT_FOUND = 2
PARAMETERS_TOO_LONG = 3
SECURITY_RISK = 4
WRONG_CHECK_CALL_INTERFACE = 5
PROGRAM_START_ERROR = 6
PROGRAM_TERMINATION_ERROR = 7
X_ERROR = 8
PARAMETER_EXPECTED = 9
TOO_MANY_PARAMETERS = 10
ILLEGAL_COMMAND = 11
WRONG_ASYNCHRONOUS_PARAMETERS = 12
CANT_ENQ_TBTCO_ENTRY = 13
JOBCOUNT_GENERATION_ERROR = 14
OTHERS = 15.
w_length = strlen( c_final_path ).
replace c_final_path with ' ' into c_file length w_length.
shift c_file left deleting leading space .
concatenate c_uncpath c_file into w_infile .
concatenate archfile c_file into w_outfile .
CALL FUNCTION 'Z_CONVERT_UNIX2DOS'
EXPORTING
INFILE = w_infile
OUTFILE = w_outfile
EXCEPTIONS
ERROR = 1
IDENTICAL_FILENAMES = 2
NO_INPUT_FILE = 3
OTHERS = 4.
IF SY-SUBRC = 0.
SKIP.
WRITE: / C_FILE, 'copied to', ARCHFILE.
ELSE.
MESSAGE E000(38) WITH 'Archive file copy failed.'.
ENDIF.
ENDFORM. " copy_to_archive.
Build Archive file pathnames.
FORM BUILD_ARCHIVE_NAME USING P_PATH
CHANGING P_ARCH.
DATA:
NODECOUNT TYPE I,
LASTNODE TYPE I,
BEGIN OF NODES OCCURS 25,
NODENAME(100),
END OF NODES.
SPLIT P_PATH AT '/' INTO TABLE NODES.
DESCRIBE TABLE NODES LINES NODECOUNT.
CLEAR P_ARCH.
LASTNODE = NODECOUNT - 1.
LOOP AT NODES.
CASE SY-TABIX.
WHEN LASTNODE.
CONCATENATE P_ARCH NODES-NODENAME '/archive/' INTO P_ARCH.
WHEN NODECOUNT.
WHEN OTHERS.
CONCATENATE P_ARCH NODES-NODENAME '/' INTO P_ARCH.
ENDCASE.
ENDLOOP.
ENDFORM. " build_archive_name
*& Form CONVERT_FILE
Move output files from unconverted directory to final destination
directory and convert from UNIX to DOS format in the process.
FORM CONVERT_FILE.
CONCATENATE MATLFILE '.txt' INTO OUTFILE.
Convert customer file from Unix to DOS
CALL FUNCTION 'Z_CONVERT_UNIX2DOS'
EXPORTING
INFILE = F_M_UNCFILE
OUTFILE = outFILE
EXCEPTIONS
ERROR = 1
IDENTICAL_FILENAMES = 2
NO_INPUT_FILE = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
write: /'Error converting file. Input file: ', F_M_UNCFILE.
write: /' Output file: ', outFILE.
ENDIF.
ENDFORM. " CONVERT_FILEHi Vijay,
thanks very much for the reply with valuable suggestion.
I have made couple of changes in the program like this:
i have created another Internal table like this...for selecting the data of MARA...
<b>data: begin of it_temp occurs 0,
matnr like mara-matnr,
end of it_temp.</b>
then I have changed the FORM like this ....
Plz have a look on that and let me know if any thing is wrong in that...
thnx much..
<b>form get_outsert.
select matnr from mara into corresponding fields of table
it_temp where mtart = 'FERT' or mtart = 'HAWA'.
select didnrk amatnr
into (i_outsert-component, i_outsert-matnr)
from stpo as d
inner join stko as c
on dstlnr = cstlnr
inner join mast as b
on cstlnr = bstlnr
inner join mara as a
on bmatnr = amatnr
for all entries IN it_temp
where a~matnr = it_temp-matnr.
append i_outsert.
endselect.
loop at i_outsert where matnr = it_temp-matnr.
if ( i_outsert-component cs str1 ) or ( i_outsert-component cs str2 ).
write i_outsert-component to material_data-component.
append material_data.
elseif ( i_outsert-component cs str3 ) or
( i_outsert-component cs str4 ).
write i_outsert-component to material_data-mguide.
append material_data.
endif.
modify material_data transporting component
where matnr = i_outsert-matnr.
endloop.
endform. "get_outsert</b> -
Problem:ABAp list to pdf :downaloading single line item instead of multiple
Hi all,
my requirement is converting the report output as pdf and download. if user enter multiple vendors, we have to download vendor data based up on vendor as separate pdf file. for this i used NEW PAGE PRINT ON. everything i'm downaloding fine.but my problem is when vendor have multiple line items ,it is downloading only one line item that is lastline item. but i need total line items have to download.I'm pasting my code here. Can Anyone suggest.
TYPES: BEGIN OF type_data,
lifnr TYPE ekko-lifnr,
matnr TYPE lips-matnr,
vgbel TYPE lips-vgbel,
vgpos TYPE lips-vgpos,
mfrgr TYPE lips-mfrgr,
vbeln TYPE ekes-vbeln,
erdat TYPE ekes-erdat,
lfdat TYPE ekes-eindt,
lgort TYPE lips-lgort,
verur TYPE ekes-xblnr,
lfuhr TYPE ekes-uzeit,
lfimg TYPE lips-lfimg,
meins TYPE lips-meins,
posnr TYPE lips-posnr,
kdmat TYPE lips-kdmat,
dabmg TYPE ekes-dabmg,
eindt TYPE eket-eindt,
* Add by liza DEVK989704
park TYPE ZPO_PARK-menge,
* End by liza DEVK989704
END OF type_data.
DATA: gt_data TYPE STANDARD TABLE OF type_data.
DATA: gw_data LIKE LINE OF gt_data.
Data : BEGIN OF t_data OCCURS 0,
lifnr like ekko-lifnr,
matnr like lips-matnr,
maktx like makt-maktx,
vgbel like lips-vgbel,
vgpos(6), " like lips-vgpos,
mfrgr like lips-mfrgr,
vbeln like ekes-vbeln,
erdat like ekes-erdat,
lfdat like ekes-eindt,
lgort like lips-lgort,
verur like ekes-xblnr,
lfuhr like ekes-uzeit,
lfimg(15) type p decimals 0, "like lips-lfimg,
meins(3), " like lips-meins,
posnr(6), "like lips-posnr,
kdmat like lips-kdmat,
dabmg(15) type p decimals 0, " like ekes-dabmg,
menge(15) type p decimals 0,
eindt like eket-eindt,
adv(3),
adrnr type lfa1-adrnr,
EMAIL type zmamm_dt1002-EMAIL,
* Add by liza DEVK989704
PARK(15) type p decimals 0,
* End by liza DEVK989704
END OF t_data.
FORM FM_DOWNLOAD_DATA .
data: wa_pri_params like pri_params.
data: w_valid(1).
data: w_tabix type c.
data: w_rqident type rspoid.
data: list_name like PRI_PARAMS-PLIST.
l_x = 'X'.
caLL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
NO_DIALOG = L_X
IMPORTING
OUT_PARAMETERS = wa_pri_params
VALID = w_VALID
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
wa_pri_params-PAART = 'X_65_80'.
wa_pri_params-LINSZ = '185'.
IF w_valid EQ 'X'.
* WAIT UP TO 1 SECONDS.
CONCATENATE 'E'
w_tabix
sy-datum+4(4)
sy-uzeit INTO
wa_pri_params-plist.
ENDIF.
DATA: lv_maktx TYPE makt-maktx,
lv_adv(01) TYPE c.
DATA: lv_menge TYPE zomm_t0104m-menge.
*-- Set titles
title1 = 'Panasonic HA Air-Conditioning (M) Sdn Bhd, Shah Alam'.
title2 = '(Formerly Known As Matsushita Industrial Corp. Sdn. Bhd.)'.
title3 = sy-title.
IF NOT pa_fax IS INITIAL.
NEW-PAGE LINE-SIZE 120 LINE-COUNT 44.
title3 = 'Outstanding shipping notifications by supplier'.
ENDIF.
SORT gt_data BY lifnr lfdat matnr vgbel vgpos eindt.
LOOP AT gt_data INTO gw_data.
NEW-PAGE PRINT ON NO DIALOG PARAMETERS wa_pri_params.
AT NEW lifnr.
NEW-PAGE.
sy-pagno = 1.
*-- Get the vendor name
CLEAR: gv_name1,
gv_telf1,
gv_telfx.
SELECT SINGLE name1 telf1 telfx
INTO (gv_name1, gv_telf1, gv_telfx)
FROM lfa1
WHERE lifnr = gw_data-lifnr.
ENDAT.
at new matnr.
*-- Get the material description
CLEAR lv_maktx.
SELECT SINGLE maktx INTO lv_maktx
FROM makt
WHERE matnr = gw_data-matnr
AND spras = sy-langu.
endat.
*-- If "only pending shipping notifications" is selected, remove all
* entries with no pending quantity
IF gw_data-lfimg LE gw_data-dabmg AND
pa_pend = 'X'.
CONTINUE.
ENDIF.
*-- Highlight entries where the SN delivery date is before the PO
* delivery date
IF gw_data-lfdat < gw_data-eindt.
FORMAT INTENSIFIED ON.
lv_adv = 'X'.
ELSE.
FORMAT INTENSIFIED OFF.
CLEAR lv_adv.
ENDIF.
lv_menge = gw_data-lfimg - gw_data-dabmg.
* Add by liza DEVK989704
clear: PARKING, T_PARK.
refresh: T_PARK.
Select * from ZPO_PARK into T_PARK
where vbeln = gw_data-vbeln
and lifnr = gw_data-lifnr
and matnr = gw_data-matnr.
Append T_PARK.
Endselect.
Loop at T_PARK.
PARKING = PARKING + T_PARK-menge.
Endloop.
gw_data-park = PARKING.IF pa_fax IS INITIAL.
WRITE:/2(18) gw_data-matnr,
(40) lv_maktx,
gw_data-vgbel,
gw_data-eindt,
(04) gw_data-mfrgr,
(18) gw_data-verur,
gw_data-vbeln,
gw_data-lfdat,
(07) gw_data-lfimg UNIT gw_data-meins,
(07) gw_data-dabmg UNIT gw_data-meins,
(07) lv_menge UNIT gw_data-meins,
gw_data-lgort,
gw_data-erdat,
(01) lv_adv,
* Add by liza DEVK989704
(08) gw_data-park.
* End by liza DEVK989704
ELSE.
WRITE:/2(12) gw_data-matnr,
(26) lv_maktx,
gw_data-vgbel,
(16) gw_data-verur,
gw_data-vbeln,
gw_data-lfdat,
(07) gw_data-lfimg UNIT gw_data-meins,
(07) gw_data-dabmg UNIT gw_data-meins,
(07) lv_menge UNIT gw_data-meins,
gw_data-lgort.
ENDIF.
PERFORM write_vline.
* AT END OF lifnr.
If pa_dtim NE '000000'.
ULINE.
SKIP.
WRITE:/12 TS_VEND.
WRITE:/12 TS_ATT.
WRITE:/12 TS_FROM.
SKIP. "D01K934099
WRITE:/12'DELIVERY TIME:',pa_dtim. "D01K934099
SKIP. "D01K934099
WRITE:/12 TS_TEXT1.
WRITE:/12 TS_TEXT2.
WRITE:/12 TS_TEXT3.
WRITE:/12 TS_TEXT4.
Else.
ULINE.
SKIP.
WRITE:/12 TS_VEND.
WRITE:/12 TS_ATT.
WRITE:/12 TS_FROM.
WRITE:/12 TS_TEXT1.
WRITE:/12 TS_TEXT2.
WRITE:/12 TS_TEXT3.
WRITE:/12 TS_TEXT4.
Endif.
move-corresponding gw_data to t_data.
move : lv_maktx to t_data-maktx,
lv_menge to t_data-menge,
lv_adv to t_data-adv,
* Add by liza DEVK989704
parking to t_data-park.
* End by liza DEVK989704
append t_data.
IF sy-subrc NE 0.
MESSAGE i999(sa) WITH 'No data found'.
ENDIF.
NEW-PAGE PRINT OFF.
* To fetch the spool number from TSP01 table
sELECT rqident
FROM tsp01
INTO w_rqident
*UP TO 1 ROWS
WHERE rq2name = wa_pri_params-plist.
ENDSELECT.
* /*--------Convert Spool to PDF-----------/
IF wa_pri_params-PDEST IS INITIAL.
wa_pri_params-PDEST = 'LOCL'.
ENDIF.
CONCATENATE P_DEST T_DATA-LIFNR '.PDF' INTO G_FILENAME.
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
SRC_SPOOLID = w_RQIDENT
NO_DIALOG = SPACE
IMPORTING
PDF_BYTECOUNT = G_BYTECOUNT
TABLES
PDF = T_PDF
EXCEPTIONS
ERR_NO_ABAP_SPOOLJOB = 1
ERR_NO_SPOOLJOB = 2
ERR_NO_PERMISSION = 3
ERR_CONV_NOT_POSSIBLE = 4
ERR_BAD_DESTDEVICE = 5
USER_CANCELLED = 6
ERR_SPOOLERROR = 7
ERR_TEMSEERROR = 8
ERR_BTCJOB_OPEN_FAILED = 9
ERR_BTCJOB_SUBMIT_FAILED = 10
ERR_BTCJOB_CLOSE_FAILED = 11
OTHERS = 12
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* /*---------download to specified folder--------/
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = G_BYTECOUNT
FILENAME = G_FILENAME
FILETYPE = 'BIN'
TABLES
DATA_TAB = T_PDF
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endloop.
ENDFORM. -
Report program Performance problem
Hi All,
one object is taking 30hr for executing.some one develped this in 1998 but this time it is a big Performance problem.please some one helep what to do i am giving that code.
*--DOCUMENTATION--
Programe written by : 31.03.1998 .
Purpose : this programe updates the car status into the table zsdtab1
This programe is to be schedule in the backgroud periodically .
Querries can be fired on the table zsdtab1 to get the details of the
Car .
This programe looks at the changes made in the material master from
last updated date and the new entries in material master and updates
the tables zsdtab1 .
Changes in the Sales Order are not taken into account .
To get a fresh data set the value of zupddate in table ZSTATUS as
01.01.1998 . All the data will be refreshed from that date .
Program Changed on 23/7/2001 after version upgrade 46b by jyoti
Addition of New tables for Ibase
tables used -
tables : mara , " Material master
ausp , " Characteristics table .
zstatus , " Last updated status table .
zsdtab1 , " Central database table to be maintained .
vbap , " Sales order header table .
vbak , " Sales order item table .
kna1 , " Customer master .
vbrk ,
vbrp ,
bkpf ,
bseg ,
mseg ,
mkpf ,
vbpa ,
vbfa ,
t005t . " Country details tabe .
--NEW TABLES ADDEDFOR VERSION 4.6B--
tables : ibsymbol ,ibin , ibinvalues .
data : vatinn like ibsymbol-atinn , vatwrt like ibsymbol-atwrt ,
vatflv like ibsymbol-atflv .
*--types definition--
types : begin of mara_itab_type ,
matnr like mara-matnr ,
cuobf like mara-cuobf ,
end of mara_itab_type ,
begin of ausp_itab_type ,
atinn like ausp-atinn ,
atwrt like ausp-atwrt ,
atflv like ausp-atflv ,
end of ausp_itab_type .
data : mara_itab type mara_itab_type occurs 500 with header line ,
zsdtab1_itab like zsdtab1 occurs 500 with header line ,
ausp_itab type ausp_itab_type occurs 500 with header line ,
last_date type d ,
date type d .
data: length type i.
clear mara_itab . refresh mara_itab .
clear zsdtab1_itab . refresh zsdtab1_itab .
select single zupddate into last_date from zstatus
where programm = 'ZSDDET01' .
select matnr cuobf into (mara_itab-matnr , mara_itab-cuobf) from mara
where mtart eq 'FERT' or mtart = 'ZCBU'.
where MATNR IN MATERIA
and ERSDA IN C_Date
and MTART in M_TYP.
append mara_itab .
endselect .
loop at mara_itab.
clear zsdtab1_itab .
zsdtab1_itab-commno = mara_itab-matnr .
Get the detailed data into internal table ausp_itab .----------->>>
clear ausp_itab . refresh ausp_itab .
--change starts--
select atinn atwrt atflv into (ausp_itab-atinn , ausp_itab-atwrt ,
ausp_itab-atflv) from ausp
where objek = mara_itab-matnr .
append ausp_itab .
endselect .
clear ausp_itab .
select atinn atwrt atflv into (ausp_itab-atinn , ausp_itab-atwrt ,
ausp_itab-atflv) from ibin as a inner join ibinvalues as b
on ain_recno = bin_recno
inner join ibsymbol as c
on bsymbol_id = csymbol_id
where a~instance = mara_itab-cuobf .
append ausp_itab .
endselect .
----CHANGE ENDS HERE -
sort ausp_itab by atwrt.
loop at ausp_itab .
clear date .
case ausp_itab-atinn .
when '0000000094' .
zsdtab1_itab-model = ausp_itab-atwrt . " model .
when '0000000101' .
zsdtab1_itab-drive = ausp_itab-atwrt . " drive
when '0000000095' .
zsdtab1_itab-converter = ausp_itab-atwrt . "converter
when '0000000096' .
zsdtab1_itab-transmssn = ausp_itab-atwrt . "transmission
when '0000000097' .
zsdtab1_itab-colour = ausp_itab-atwrt . "colour
when '0000000098' .
zsdtab1_itab-ztrim = ausp_itab-atwrt . "trim
when '0000000103' .
*=========Sujit 14-Mar-2006
IF AUSP_ITAB-ATWRT(3) EQ 'WDB' OR AUSP_ITAB-ATWRT(3) EQ 'WDD'
OR AUSP_ITAB-ATWRT(3) EQ 'WDC' OR AUSP_ITAB-ATWRT(3) EQ 'KPD'.
ZSDTAB1_ITAB-CHASSIS_NO = AUSP_ITAB-ATWRT+3(14).
ELSE.
ZSDTAB1_ITAB-CHASSIS_NO = AUSP_ITAB-ATWRT . "chassis no
ENDIF.
zsdtab1_itab-chassis_no = ausp_itab-atwrt . "chassis no
*=========14-Mar-2006
when '0000000166' .
----25.05.04
length = strlen( ausp_itab-atwrt ).
if length < 15. "***aded by patil
zsdtab1_itab-engine_no = ausp_itab-atwrt . "ENGINE NO
else.
zsdtab1_itab-engine_no = ausp_itab-atwrt+13(14)."Aded on 21.05.04 patil
endif.
----25.05.04
when '0000000104' .
zsdtab1_itab-body_no = ausp_itab-atwrt . "BODY NO
when '0000000173' . "21.06.98
zsdtab1_itab-cockpit = ausp_itab-atwrt . "COCKPIT NO . "21.06.98
when '0000000102' .
zsdtab1_itab-dest = ausp_itab-atwrt . "destination
when '0000000105' .
zsdtab1_itab-airbag = ausp_itab-atwrt . "AIRBAG
when '0000000110' .
zsdtab1_itab-trailer_no = ausp_itab-atwrt . "TRAILER_NO
when '0000000109' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-fininspdat = date . "FIN INSP DATE
when '0000000108' .
zsdtab1_itab-entrydate = ausp_itab-atwrt . "ENTRY DATE
when '0000000163' .
zsdtab1_itab-regist_no = ausp_itab-atwrt . "REGIST_NO
when '0000000164' .
zsdtab1_itab-mech_key = ausp_itab-atwrt . "MECH_KEY
when '0000000165' .
zsdtab1_itab-side_ab_rt = ausp_itab-atwrt . "SIDE_AB_RT
when '0000000171' .
zsdtab1_itab-side_ab_lt = ausp_itab-atwrt . "SIDE_AB_LT
when '0000000167' .
zsdtab1_itab-elect_key = ausp_itab-atwrt . "ELECT_KEY
when '0000000168' .
zsdtab1_itab-head_lamp = ausp_itab-atwrt . "HEAD_LAMP
when '0000000169' .
zsdtab1_itab-tail_lamp = ausp_itab-atwrt . "TAIL_LAMP
when '0000000170' .
zsdtab1_itab-vac_pump = ausp_itab-atwrt . "VAC_PUMP
when '0000000172' .
zsdtab1_itab-sd_ab_sn_l = ausp_itab-atwrt . "SD_AB_SN_L
when '0000000174' .
zsdtab1_itab-sd_ab_sn_r = ausp_itab-atwrt . "SD_AB_SN_R
when '0000000175' .
zsdtab1_itab-asrhydunit = ausp_itab-atwrt . "ASRHYDUNIT
when '0000000176' .
zsdtab1_itab-gearboxno = ausp_itab-atwrt . "GEARBOXNO
when '0000000177' .
zsdtab1_itab-battery = ausp_itab-atwrt . "BATTERY
when '0000000178' .
zsdtab1_itab-tyretype = ausp_itab-atwrt . "TYRETYPE
when '0000000179' .
zsdtab1_itab-tyremake = ausp_itab-atwrt . "TYREMAKE
when '0000000180' .
zsdtab1_itab-tyresize = ausp_itab-atwrt . "TYRESIZE
when '0000000181' .
zsdtab1_itab-rr_axle_no = ausp_itab-atwrt . "RR_AXLE_NO
when '0000000183' .
zsdtab1_itab-ff_axl_nor = ausp_itab-atwrt . "FF_AXLE_NO_rt
when '0000000182' .
zsdtab1_itab-ff_axl_nol = ausp_itab-atwrt . "FF_AXLE_NO_lt
when '0000000184' .
zsdtab1_itab-drivairbag = ausp_itab-atwrt . "DRIVAIRBAG
when '0000000185' .
zsdtab1_itab-st_box_no = ausp_itab-atwrt . "ST_BOX_NO
when '0000000186' .
zsdtab1_itab-transport = ausp_itab-atwrt . "TRANSPORT
when '0000000106' .
zsdtab1_itab-trackstage = ausp_itab-atwrt . " tracking stage
when '0000000111' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_1 = date . " tracking date for 1.
when '0000000112' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_5 = date . " tracking date for 5.
when '0000000113' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_10 = date . "tracking date for 10
when '0000000114' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_15 = date . "tracking date for 15
when '0000000115' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_20 = date . " tracking date for 20
when '0000000116' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_25 = date . " tracking date for 25
when '0000000117' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_30 = date . "tracking date for 30
when '0000000118' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_35 = date . "tracking date for 35
when '0000000119' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_40 = date . " tracking date for 40
when '0000000120' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_45 = date . " tracking date for 45
when '0000000121' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_50 = date . "tracking date for 50
when '0000000122' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_55 = date . "tracking date for 55
when '0000000123' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_60 = date . " tracking date for 60
when '0000000124' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_65 = date . " tracking date for 65
when '0000000125' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_70 = date . "tracking date for 70
when '0000000126' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_75 = date . "tracking date for 75
when '0000000127' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_78 = date . " tracking date for 78
when '0000000203' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_79 = date . " tracking date for 79
when '0000000128' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_80 = date . " tracking date for 80
when '0000000129' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_85 = date . "tracking date for 85
when '0000000130' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_90 = date . "tracking date for 90
when '0000000131' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_95 = date . "tracking date for 95
when '0000000132' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dattrk_100 = date . " tracking date for100
when '0000000133' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dattrk_110 = date . " tracking date for110
when '0000000134' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dattrk_115 = date . "tracking date for 115
when '0000000135' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dattrk_120 = date . "tracking date for 120
when '0000000136' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dattrk_105 = date . "tracking date for 105
when '0000000137' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_1 = date . "plan trk date for 1
when '0000000138' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_5 = date . "plan trk date for 5
when '0000000139' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_10 = date . "plan trk date for 10
when '0000000140' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_15 = date . "plan trk date for 15
when '0000000141' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_20 = date . "plan trk date for 20
when '0000000142' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_25 = date . "plan trk date for 25
when '0000000143' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_30 = date . "plan trk date for 30
when '0000000144' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_35 = date . "plan trk date for 35
when '0000000145' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_40 = date . "plan trk date for 40
when '0000000146' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_45 = date . "plan trk date for 45
when '0000000147' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_50 = date . "plan trk date for 50
when '0000000148' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_55 = date . "plan trk date for 55
when '0000000149' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_60 = date . "plan trk date for 60
when '0000000150' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_65 = date . "plan trk date for 65
when '0000000151' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_70 = date . "plan trk date for 70
when '0000000152' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_75 = date . "plan trk date for 75
when '0000000153' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_78 = date . "plan trk date for 78
when '0000000202' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_79 = date . "plan trk date for 79
when '0000000154' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_80 = date . "plan trk date for 80
when '0000000155' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_85 = date . "plan trk date for 85
when '0000000156' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_90 = date . "plan trk date for 90
when '0000000157' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_95 = date . "plan trk date for 95
when '0000000158' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_100 = date . "plan trk date for 100
when '0000000159' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_105 = date . "plan trk date for 105
when '0000000160' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_110 = date . "plan trk date for 110
when '0000000161' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_115 = date . "plan trk date for 115
when '0000000162' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_120 = date . "plan trk date for 120
********Additional fields / 24.05.98**********************************
when '0000000099' .
case ausp_itab-atwrt .
when '540' .
zsdtab1_itab-roll_blind = 'X' .
when '482' .
zsdtab1_itab-ground_clr = 'X' .
when '551' .
zsdtab1_itab-anti_theft = 'X' .
when '882' .
zsdtab1_itab-anti_tow = 'X' .
when '656' .
zsdtab1_itab-alloy_whel = 'X' .
when '265' .
zsdtab1_itab-del_class = 'X' .
when '280' .
zsdtab1_itab-str_wheel = 'X' .
when 'CDC' .
zsdtab1_itab-cd_changer = 'X' .
when '205' .
zsdtab1_itab-manual_eng = 'X' .
when '273' .
zsdtab1_itab-conn_handy = 'X' .
when '343' .
zsdtab1_itab-aircleaner = 'X' .
when '481' .
zsdtab1_itab-metal_sump = 'X' .
when '533' .
zsdtab1_itab-speaker = 'X' .
when '570' .
zsdtab1_itab-arm_rest = 'X' .
when '580' .
zsdtab1_itab-aircond = 'X' .
when '611' .
zsdtab1_itab-exit_light = 'X' .
when '613' .
zsdtab1_itab-headlamp = 'X' .
when '877' .
zsdtab1_itab-readlamp = 'X' .
when '808' .
zsdtab1_itab-code_ckd = 'X' .
when '708' .
zsdtab1_itab-del_prt_lc = 'X' .
when '593' .
zsdtab1_itab-ins_glass = 'X' .
when '955' .
zsdtab1_itab-zelcl = 'Elegance' .
when '593' .
zsdtab1_itab-zelcl = 'Classic' .
endcase .
endcase .
endloop .
*--Update the sales data .--
perform get_sales_order using mara_itab-matnr .
perform get_cartype using mara_itab-matnr .
append zsdtab1_itab .
endloop.
<<<
loop at zsdtab1_itab .
if zsdtab1_itab-cartype <> 'W-203'
or zsdtab1_itab-cartype <> 'W-210'
or zsdtab1_itab-cartype <> 'W-211'.
clear zsdtab1_itab-zelcl.
endif.
SELECT SINGLE * FROM ZSDTAB1 WHERE COMMNO = MARA_ITAB-MATNR .
select single * from zsdtab1 where commno = zsdtab1_itab-commno.
if sy-subrc <> 0 .
insert into zsdtab1 values zsdtab1_itab .
else .
update zsdtab1 set :vbeln = zsdtab1_itab-vbeln
bill_doc = zsdtab1_itab-bill_doc
dest = zsdtab1_itab-dest
lgort = zsdtab1_itab-lgort
ship_tp = zsdtab1_itab-ship_tp
country = zsdtab1_itab-country
kunnr = zsdtab1_itab-kunnr
vkbur = zsdtab1_itab-vkbur
customer = zsdtab1_itab-customer
city = zsdtab1_itab-city
region = zsdtab1_itab-region
model = zsdtab1_itab-model
drive = zsdtab1_itab-drive
converter = zsdtab1_itab-converter
transmssn = zsdtab1_itab-transmssn
colour = zsdtab1_itab-colour
ztrim = zsdtab1_itab-ztrim
commno = zsdtab1_itab-commno
trackstage = zsdtab1_itab-trackstage
chassis_no = zsdtab1_itab-chassis_no
engine_no = zsdtab1_itab-engine_no
body_no = zsdtab1_itab-body_no
cockpit = zsdtab1_itab-cockpit
airbag = zsdtab1_itab-airbag
trailer_no = zsdtab1_itab-trailer_no
fininspdat = zsdtab1_itab-fininspdat
entrydate = zsdtab1_itab-entrydate
regist_no = zsdtab1_itab-regist_no
mech_key = zsdtab1_itab-mech_key
side_ab_rt = zsdtab1_itab-side_ab_rt
side_ab_lt = zsdtab1_itab-side_ab_lt
elect_key = zsdtab1_itab-elect_key
head_lamp = zsdtab1_itab-head_lamp
tail_lamp = zsdtab1_itab-tail_lamp
vac_pump = zsdtab1_itab-vac_pump
sd_ab_sn_l = zsdtab1_itab-sd_ab_sn_l
sd_ab_sn_r = zsdtab1_itab-sd_ab_sn_r
asrhydunit = zsdtab1_itab-asrhydunit
gearboxno = zsdtab1_itab-gearboxno
battery = zsdtab1_itab-battery
tyretype = zsdtab1_itab-tyretype
tyremake = zsdtab1_itab-tyremake
tyresize = zsdtab1_itab-tyresize
rr_axle_no = zsdtab1_itab-rr_axle_no
ff_axl_nor = zsdtab1_itab-ff_axl_nor
ff_axl_nol = zsdtab1_itab-ff_axl_nol
drivairbag = zsdtab1_itab-drivairbag
st_box_no = zsdtab1_itab-st_box_no
transport = zsdtab1_itab-transport
OPTIONS-
roll_blind = zsdtab1_itab-roll_blind
ground_clr = zsdtab1_itab-ground_clr
anti_theft = zsdtab1_itab-anti_theft
anti_tow = zsdtab1_itab-anti_tow
alloy_whel = zsdtab1_itab-alloy_whel
del_class = zsdtab1_itab-del_class
str_wheel = zsdtab1_itab-str_wheel
cd_changer = zsdtab1_itab-cd_changer
manual_eng = zsdtab1_itab-manual_eng
conn_handy = zsdtab1_itab-conn_handy
aircleaner = zsdtab1_itab-aircleaner
metal_sump = zsdtab1_itab-metal_sump
speaker = zsdtab1_itab-speaker
arm_rest = zsdtab1_itab-arm_rest
aircond = zsdtab1_itab-aircond
exit_light = zsdtab1_itab-exit_light
headlamp = zsdtab1_itab-headlamp
readlamp = zsdtab1_itab-readlamp
code_ckd = zsdtab1_itab-code_ckd
del_prt_lc = zsdtab1_itab-del_prt_lc
ins_glass = zsdtab1_itab-ins_glass
dat_trk_1 = zsdtab1_itab-dat_trk_1
dat_trk_5 = zsdtab1_itab-dat_trk_5
dat_trk_10 = zsdtab1_itab-dat_trk_10
dat_trk_15 = zsdtab1_itab-dat_trk_15
dat_trk_20 = zsdtab1_itab-dat_trk_20
dat_trk_25 = zsdtab1_itab-dat_trk_25
dat_trk_30 = zsdtab1_itab-dat_trk_30
dat_trk_35 = zsdtab1_itab-dat_trk_35
dat_trk_40 = zsdtab1_itab-dat_trk_40
dat_trk_45 = zsdtab1_itab-dat_trk_45
dat_trk_50 = zsdtab1_itab-dat_trk_50
dat_trk_55 = zsdtab1_itab-dat_trk_55
dat_trk_60 = zsdtab1_itab-dat_trk_60
dat_trk_65 = zsdtab1_itab-dat_trk_65
dat_trk_70 = zsdtab1_itab-dat_trk_70
dat_trk_75 = zsdtab1_itab-dat_trk_75
dat_trk_78 = zsdtab1_itab-dat_trk_78
dat_trk_79 = zsdtab1_itab-dat_trk_79
dat_trk_80 = zsdtab1_itab-dat_trk_80
dat_trk_85 = zsdtab1_itab-dat_trk_85
dat_trk_90 = zsdtab1_itab-dat_trk_90
dat_trk_95 = zsdtab1_itab-dat_trk_95
dattrk_100 = zsdtab1_itab-dattrk_100
dattrk_105 = zsdtab1_itab-dattrk_105
dattrk_110 = zsdtab1_itab-dattrk_110
dattrk_115 = zsdtab1_itab-dattrk_115
dattrk_120 = zsdtab1_itab-dattrk_120
pdt_tk_1 = zsdtab1_itab-pdt_tk_1
pdt_tk_5 = zsdtab1_itab-pdt_tk_5
pdt_tk_10 = zsdtab1_itab-pdt_tk_10
pdt_tk_15 = zsdtab1_itab-pdt_tk_15
pdt_tk_20 = zsdtab1_itab-pdt_tk_20
pdt_tk_25 = zsdtab1_itab-pdt_tk_25
pdt_tk_30 = zsdtab1_itab-pdt_tk_30
pdt_tk_35 = zsdtab1_itab-pdt_tk_35
pdt_tk_40 = zsdtab1_itab-pdt_tk_40
pdt_tk_45 = zsdtab1_itab-pdt_tk_45
pdt_tk_50 = zsdtab1_itab-pdt_tk_50
pdt_tk_55 = zsdtab1_itab-pdt_tk_55
pdt_tk_60 = zsdtab1_itab-pdt_tk_60
pdt_tk_65 = zsdtab1_itab-pdt_tk_65
pdt_tk_70 = zsdtab1_itab-pdt_tk_70
pdt_tk_75 = zsdtab1_itab-pdt_tk_75
pdt_tk_78 = zsdtab1_itab-pdt_tk_78
pdt_tk_79 = zsdtab1_itab-pdt_tk_79
pdt_tk_80 = zsdtab1_itab-pdt_tk_80
pdt_tk_85 = zsdtab1_itab-pdt_tk_85
pdt_tk_90 = zsdtab1_itab-pdt_tk_90
pdt_tk_95 = zsdtab1_itab-pdt_tk_95
pdt_tk_100 = zsdtab1_itab-pdt_tk_100
pdt_tk_105 = zsdtab1_itab-pdt_tk_105
pdt_tk_110 = zsdtab1_itab-pdt_tk_110
pdt_tk_115 = zsdtab1_itab-pdt_tk_115
pdt_tk_120 = zsdtab1_itab-pdt_tk_120
cartype = zsdtab1_itab-cartype
zelcl = zsdtab1_itab-zelcl
excise_no = zsdtab1_itab-excise_no
where commno = zsdtab1_itab-commno .
Update table .---------<<<
endif .
endloop .
perform update_excise_date .
perform update_post_goods_issue_date .
perform update_time.
*///////////////////// end of programe /////////////////////////////////
Get sales data -
form get_sales_order using matnr .
data : corr_vbeln like vbrk-vbeln .
ADDED BY ADITYA / 22.06.98 **************************************
perform get_order using matnr .
select single vbeln lgort into (zsdtab1_itab-vbeln , zsdtab1_itab-lgort)
from vbap where matnr = matnr . " C-22.06.98
from vbap where vbeln = zsdtab1_itab-vbeln .
if sy-subrc = 0 .
************Get the Excise No from Allocation Field*******************
select single * from zsdtab1 where commno = matnr .
if zsdtab1-excise_no = '' .
select * from vbrp where matnr = matnr .
select single vbeln into corr_vbeln from vbrk where
vbeln = vbrp-vbeln and vbtyp = 'M'.
if sy-subrc eq 0.
select single * from vbrk where vbtyp = 'N'
and sfakn = corr_vbeln. "cancelled doc.
if sy-subrc ne 0.
select single * from vbrk where vbeln = corr_vbeln.
if sy-subrc eq 0.
data : year(4) .
move sy-datum+0(4) to year .
select single * from bkpf where awtyp = 'VBRK' and awkey = vbrk-vbeln
and bukrs = 'MBIL' and gjahr = year .
if sy-subrc = 0 .
select single * from bseg where bukrs = 'MBIL' and belnr = bkpf-belnr
and gjahr = year and koart = 'D' and
shkzg = 'S' .
zsdtab1_itab-excise_no = bseg-zuonr .
endif .
endif.
endif.
endif.
endselect.
endif .
select single kunnr vkbur into (zsdtab1_itab-kunnr ,
zsdtab1_itab-vkbur) from vbak
where vbeln = zsdtab1_itab-vbeln .
if sy-subrc = 0 .
select single name1 ort01 regio into (zsdtab1_itab-customer ,
zsdtab1_itab-city , zsdtab1_itab-region) from kna1
where kunnr = zsdtab1_itab-kunnr .
endif.
Get Ship to Party **************************************************
select single * from vbpa where vbeln = zsdtab1_itab-vbeln and
parvw = 'WE' .
if sy-subrc = 0 .
zsdtab1_itab-ship_tp = vbpa-kunnr .
Get Destination Country of Ship to Party .************
select single * from kna1 where kunnr = vbpa-kunnr .
if sy-subrc = 0 .
select single * from t005t where land1 = kna1-land1
and spras = 'E' .
if sy-subrc = 0 .
zsdtab1_itab-country = t005t-landx .
endif .
endif .
endif .
endif .
endform. " GET_SALES
form update_time.
update zstatus set zupddate = sy-datum
uzeit = sy-uzeit
where programm = 'ZSDDET01' .
endform. " UPDATE_TIME
*& Form DATE_CONVERT
form date_convert using atflv changing date .
data : dt(8) , dat type i .
dat = atflv .
dt = dat .
date = dt .
endform. " DATE_CONVERT
*& Form UPDATE_POST_GOODS_ISSUE_DATE
form update_post_goods_issue_date .
types : begin of itab1_type ,
mblnr like mseg-mblnr ,
budat like mkpf-budat ,
end of itab1_type .
data : itab1 type itab1_type occurs 10 with header line .
loop at mara_itab .
select single * from zsdtab1 where commno = mara_itab-matnr .
if sy-subrc = 0 and zsdtab1-postdate = '00000000' .
refresh itab1 . clear itab1 .
select * from mseg where matnr = mara_itab-matnr and bwart = '601' .
itab1-mblnr = mseg-mblnr .
append itab1 .
endselect .
loop at itab1 .
select single * from mkpf where mblnr = itab1-mblnr .
if sy-subrc = 0 .
itab1-budat = mkpf-budat .
modify itab1 .
endif .
endloop .
sort itab1 by budat .
read table itab1 index 1 .
if sy-subrc = 0 .
update zsdtab1 set postdate = itab1-budat
where commno = mara_itab-matnr .
endif .
endif .
endloop .
endform. " UPDATE_POST_GOODS_ISSUE_DATE
*& Form UPDATE_EXCISE_DATE
form update_excise_date.
types : begin of itab2_type ,
mblnr like mseg-mblnr ,
budat like mkpf-budat ,
end of itab2_type .
data : itab2 type itab2_type occurs 10 with header line .
loop at mara_itab .
select single * from zsdtab1 where commno = mara_itab-matnr .
if sy-subrc = 0 and zsdtab1-excise_dat = '00000000' .
refresh itab2 . clear itab2 .
select * from mseg where matnr = mara_itab-matnr and
( bwart = '601' or bwart = '311' ) .
itab2-mblnr = mseg-mblnr .
append itab2 .
endselect .
loop at itab2 .
select single * from mkpf where mblnr = itab2-mblnr .
if sy-subrc = 0 .
itab2-budat = mkpf-budat .
modify itab2 .
endif .
endloop .
sort itab2 by budat .
read table itab2 index 1 .
if sy-subrc = 0 .
update zsdtab1 set excise_dat = itab2-budat
where commno = mara_itab-matnr .
endif .
endif .
endloop .
endform. " UPDATE_EXCISE_DATE
form get_order using matnr .
types : begin of itab_type ,
vbeln like vbap-vbeln ,
posnr like vbap-posnr ,
end of itab_type .
data : itab type itab_type occurs 10 with header line .
refresh itab . clear itab .
select * from vbap where matnr = mara_itab-matnr .
itab-vbeln = vbap-vbeln .
itab-posnr = vbap-posnr .
append itab .
endselect .
loop at itab .
select single * from vbak where vbeln = itab-vbeln .
if vbak-vbtyp <> 'C' .
delete itab .
endif .
endloop .
loop at itab .
select single * from vbfa where vbelv = itab-vbeln and
posnv = itab-posnr and vbtyp_n = 'H' .
if sy-subrc = 0 .
delete itab .
endif .
endloop .
clear : zsdtab1_itab-vbeln , zsdtab1_itab-bill_doc .
loop at itab .
zsdtab1_itab-vbeln = itab-vbeln .
select single * from vbfa where vbelv = itab-vbeln and
posnv = itab-posnr and vbtyp_n = 'M' .
if sy-subrc = 0 .
zsdtab1_itab-bill_doc = vbfa-vbeln .
endif .
endloop .
endform .
*& Form GET_CARTYPE
form get_cartype using matnr .
select single * from mara where matnr = matnr .
zsdtab1_itab-cartype = mara-satnr .
endform. " GET_CARTYPEHi,
I have analysed your program and i would like to share following points for better performance of this report :
(a) Use the field Names instead of Select * or Select Single * as if you use the field names it will consume less amount of resources inside the loop as well as you have lot many Select Single * and u r using very big tables like VBAP and many more.
(b) Trace on ST05 which particular query is mostly effecting your system or use ST12 in current mode to trace for less inputs which run the report for 20-30 min so that we get an idea which queries are effecting the system and taking a lot of time.
(c) In Case of internal tables sort the data properly and use binary search for getting the data.
I think this will help.
Thanks and Regards,
Harsh
Maybe you are looking for
-
Why not a calendar weekly view?
iCal in Mac Os has weekly view, in MobileMe there is a weekly view, why in my iPhone there isn't a weekly view for my calendar??? uff.
-
Epson scanner driver download compatible to OS Tiger
I own a Power Mac G4 and an Epson Expression 1640XL scanner. I recently upgraded the OS to Tiger and realized afterward that Epson website doesn't offer a download of a driver that is compatible to Tiger. It supports up to OS 10.3. Does anybody have
-
hello I am using crystal reports XI, I am grouping on catogory, in the group header i placed a bar chart, I have 6 groups so the chart is printing 6 times, here my problem is chart is printing one by one(Vertically) this is taking so much space on t
-
I have not been able to download the new iTunes.
I get a dialog box asking if I want to save the file, and then nothing happens. I deleted iTunes and related files as instructed on the help page, but it still would not download.
-
can it be saved? i know the rice thing has worked for other people but the bottom have of the screen is in basically small fragments so it probably got extra wet...