One logical question related to ABAP report.
Hi,
I have one basic list report XYZ having some field like employee number. my requirement was is that to get the detail information on the same basic list XYZ.
when using submit and return statement in basic list to call other report what will happen ?
Not sure whether it will go into loop. If it will go to infinite loop then what is the way to come out from the loop.
May be i am not explain the requirement correctly . Plz let me know the solutions?
Thanks in Advance !!!!
Yes - it'll loop. you can set up a hidden parameter on the selection screen called say, x_sub. It's normally blank, but when you submit it through the program, set it to 'X'. Then when you go to submit the program if x_sub = 'X', don't do the submit.
Rob
Similar Messages
-
Format question for a ABAP report
Hi experts,
Exist a way to create or use a format to print an output of an ABAP report that adjust to the screen? I have a Abap report that in the output have some subtrees for the information displayed.... but if the user expand a lot the subtrees when he or she print the document they see the leters and numbers very small or whitout some columms.... How can I create a format to fix this or what is the way ?
Thanks for the help!Please.... I need help in this topic.... any suggestions?
Thanks! -
Question related to concept of PCK
Hi All.
I am quite a newbie to XI and am only learning it thru online help. I have one conceptual question related to PCK.
My understanding is that PCK is needed by a small business company to communicate to its larger partner which already has XI running. Correct me if I am wrong here itself.
Now if the larger business partner already has XI, why does the smaller one need a PCK at all? The XI instance on the larger partner will have all the necessary adapters to understand any format send by the partner. So even if the partner(smaller) sends any format- be it IDOC/HTTP/FTP, the XI instance on larger partner will have its adapters ready to perform the conversion.
Then why is this PCK needed at all?
Thanks in advance. Hope my query is clear
Regards.
SamantHi Samant,
Your question is a very good one, Though I have not worked on PCK, I can share my ideas based on some brain storming session I had with our collegues & business partners.
While executing projects, there are technical & operational issues. For example, when you access any HR related data of a UK based organisation then all those who work on that project have to undertake data security pledge. Like wise there are many constraints on data & system accesses, which vary across organisations.
When you use PCK*, irrespective of different systems what the small vendors have, you communicate with your Big company's XI system only on the XI's msging protocol http(s)/SOAP. This allows a fair amount of ownership of data/access related issues to the small partners.
-> you go for PCK, when there is no need for small vendors to go for XI.
Hope this is of some help. As Michal said there might be much more (or even better) reasons.
Michal, when you say "all of the mappings and transformations have to be on the small company side", what exactly you mean by this. can you please eloborate.
Thanks & Regards
Vishnu -
Abap Report Authorization Checks
Hi. I have some question on customized abap report to be based on user role organizational level.
May I know how to program the abap report such that the report will show only data based on user role organizational level (Plant, Company, SalesOrg etc)?
For instance, if userA role organizational level for plant is plantA, the abap report will only show data for plantA. If userB role organizational level for plant is plantB, the abap report will show data for plantB.
May i know how to program the abap report?
Appreciate any guidelines.Hi,
Assign the Users with predefined roles.
Attach the Orn Units(Plants/St locn, CC/etc) in the roles .
create a Tcode for the report and attach that Tcode in that role.
So now the user can execute that report with that siplant to which he is authorised.
Hope this helps.
Regards,
Anji
Message was edited by:
Anji Reddy Vangala -
Question related to project performance reporting
Hi,
We have implemented peoject management and project accounting module with Grants module for one of the semi public sector client. Now we are planning to enable project performance repporting.
I assume below things
1. If Grant is implemented, Project budgeting doesn't work
And
2. project performance reporting based on project accounting,project budgeting and project management modules.
If anyone of you have done similar requirement , Please let us know the approach your approach.
Thanks in advance
Praveen JavvajiDuplicate post -- question related to project performance management
-
ABAP Report Program Logical Database PNP
I have a ABAP program using the logical database PNP. The report is config to run on MSS using EP. I have added code to capture the Org Unit when it is pass to the program from MSS. My issue is how do i capture the org unit value that is passed to the program. I have added code to capture field pnporgeh in the START OF SELECTION event. This works great if you are running the program from R3, but none of my edit checking against field pnporgeh works.
Hi John,
I am also having same trouble where in i have added a new custom(Z) report in the MSS ->My Staff -> Reporting under report category -> Time Management (MSS). I am not able to find how the value of org unit which is selected on portal screen is passed to report in R/3 which is using PNP logical db.
I tested in debugging but selection screen parameter PNPORGEH contains nothing.
Many Thanks in advance for the help.
Edited by: Ankit Kashyap on Nov 17, 2010 12:40 PM -
Question related to Logical table source
Hi All,
I have very basic questions -
(1) When do we create multiple logical table sources within a dimension?
(2) If a dimension has more than one logical table sources , when do we need to map the underlying table to other underlying table of logical table sources.
For exp consider these tables XLE_Entity_Profile, XLE_REgistration , AP_Invoice_ALL
AP_Invoice_All is a fact table. relationship between XLE_Entity_Profile & XLE_REgistration is (1:M).
Join info is as below -
(a) XLE_Entity_Profile.Legal_entity_id = AP_Invoice_ALL.Legal_entity_id
to get the registration of LE the where clause is as below-
(b) XLE_Entity_Profile..Legal_entity_id = XLE_REgistration.Source_id and XLE_REgistration.Source_table = 'XLE_Entity_Profile'
I have created the alias of XLE_REgistration as XLE_REgistration_LE.
With in a dimension , i have 2 logical table source - XLE_Entity_Profile & XLE_REgistration_LE.
logical table source 'XLE_REgistration_LE' has where clause 'XLE_REgistration.Source_table = 'XLE_Entity_Profile'
When i query , LE name , LE Registration Name, i get error like -
State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 14070] Cannot find logical table source coverage for logical columns: [LE_NAME]. Please check more detailed level keys are mapped correctly. (HY000)
Le Name is from XLE_Entity_Profile and LE Registration Name is from XLE_REgistration_LE.
But when using the properties of logical table source ' XLE_REgistration_LE' , i map it to 'XLE_Entity_Profile' ,i get the correct result.
I am not able to understand why am i getting error in first way of modeling.
Thanks , AshishHi Ashish,
first about logical table sources (lts): you can create different lts for aggregation and/or fragmentation. Aggregation means that data is aggregated on another level among different physical tables. Fragmentation means that the content is different over different tables (other rows).
In your case, I think the problem is that your dimension is not denormalized, which results in a snowflake.
What I understand is that you have the following (physical diagram):
Invoice (fact table) >----- Entity (Dim) >----- Registration (Dim)
You have the following joins:
invoice.entity_id = entity.entity_id
and entity.entity_id = registration.source_id and registration.source = 'something'
First idea:
I would create the following join (in physical diagram):
Invoice (fact table) >---- Registration (Dim)
Where:
invoice.entity_id = registration.source_id and registration.source = 'something'.
Then in your Entity dimension you should create a hierarchy:
Grand Total Level
Entity
Registration.
In your dimension you should create the first lts: Entity
Set the aggregation content of this lts to Entity.
This lts contains only one physical table.
Map only the entity columns to the Entity physical table.
Then create the second lts:
Entity and Registration.
Set the aggregation content of this lts to Registration.
This lts must contain two physical tables, Entity and Registration.
Map the entity columns to the Entity physical table and the registration columns to the registration physical table.
Let me know if it works or not.
Regards,
Stijn -
Hi Can any one help in creating a New Change history log for ABAP Report
SE38, put your cursor on an empty line within the source code editor, and click the pattern button. In the dialog, select the radiobutton for Pattern and enter the name of the pattern and click the green check. The wizard will then be triggered. Using the ABAP Report Wizard This first screen of the wizard is simply for information purposes.
How to create that log. How to Enter our user defined into SAP. I mean how to create and get our own one in other patterns F4 helpHi Mohan
To create a custom patter please go through the following Menu option in SE38,
Utilities --> More Utilities --> Edit Pattern --> Create/Change/Delete/Display Pattern.
Hope this helps !
Regards
Ranganath
PS : Reward points for all useful answers ! -
How to Develop the ABAP Reports in Business One
HI all;
am New to SAP Business One,
How to Develop the Z Reports in Business One ? like Normal ALV Reports and other??
Can we have the ABAP Editor and Other Transaction in Business One.
-RaviHi Sharma,
Thanks for Your Replay,
This is what my requirement !.
Hi Experts,
Here we are integrating SAP Business One with 3rd Party tool. !!
We need to Develop Customize Report in Business one and These Reports Out Put Will Convert into XML Files (Third Party System Can Understand Only XML files) and stored in Application Server/ Presentation Server.
How to Develop the u2018Z/Yu2019 Reports in Business one ? Can we use SE38 (R/3 ABAP Editor and other T-codes) in Business One.? Or is there any tools to develop the Business One Reports ? How to Convert the Report out put into XML File?
Thanks,
Upender. -
Calling one abap report from another
1.There are two abap reports Report A and Report B.
2.Report A is already developed and I am working on Report B.
3.Report B has two radio buttons.
4.The logic for the first radio button is written in the Report B itself.
5.While for the second radio button i want to call the Report A.
6.The selection-screen fields required for executing the report A are already present in the report B.i.e Report B's selection-screen contains all the selection-screen fields of Report A plus some additional fields.
Now my requirement is that when I select radio button 2 in the report B and fill up the selection screen data in the report B and execute the report I want that the selection-screen of Report A should not be displayed but the logic of the report A should be used and should return back to Report B. (Report A just downloads some data on into excel file). How can I achieve this?Hi ,
Use submit z_reportA with selection-table p_rspar_tab and return. Here you need to populate the selection screen fields in table p_rspar_tab of type rsparams.
rspar_line-selname = 'P_TAB'.
rspar_line-kind = 'P'.
rspar_line-sign = 'I'.
rspar_line-option = 'EQ'.
rspar_line-low = value.
append rspar_line to rspar_tab.
clear rspar_line.
Thanks
Subhankar -
Home-grown ABAP report sometimes hangs & sometimes finishes successfully
Dear All,
I am re-posting the below thread, which was previously posted on the : SAP on DB2 UDB for i5/OS (DB4) forum, maybe I will get a reply :
We are implementing SAP ECC 6.0 (ABAP stack) on IBM System i (iSeries), i5/OS V5R4, Kernel patch level 173
We have a home-grown ABAP report that sometimes finishes successfully and sometimes just hangs; i.e. through the OS/400 job monitoring, no change happens in the database records I/O counts.
Below is the OS/400 job log, related to a case where the report did not complete successfully (actually the below is an excerpt from the beginning and the end of the OS/400 job log)
I would highly appreciate any advise about the cause of this problem :
5722SS1 V5R4M0 060210 Display Job Log MASAPPRO 05/11/08 14:49:22 Page 1
Job name . . . . . . . . . . : WP02 User . . . . . . : PRO00 Number . . . . . . . . . . . : 303461
Job description . . . . . . : R3_00 Library . . . . . : R3PRO400
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST
CPC2196 Completion 00 05/11/08 11:44:32.099024 QLICUSRL QSYS 0113 QXDAEDRS QSYS *STMT
To module . . . . . . . . . : QXDAEDRS
To procedure . . . . . . . : QxdaProcessCommandEDRS
Statement . . . . . . . . . : 325
Message . . . . : Library QGY added to library list.
Cause . . . . . : If the ADDLIBLE command was used, QGY was added to the
user library list. If the CHGSYSLIBL command was used, QGY was added to the
system portion of the library list.
CPC2198 Completion 00 05/11/08 11:44:32.099232 QLICHLLE QSYS 01A3 QXDAEDRS QSYS *STMT
To module . . . . . . . . . : QXDAEDRS
To procedure . . . . . . . : QxdaProcessCommandEDRS
Statement . . . . . . . . . : 325
Message . . . . : Current library changed to R3PRODATA.
Cause . . . . . : The current library in the library list was changed to
R3PRODATA.
*NONE Information 05/11/08 11:44:32.214488 R3INLPGM R3PRO400 *STMT R3INLPGM R3PRO400 *STMT
From module . . . . . . . . : O4TMKLIBI
From procedure . . . . . . : prtjoblA
Statement . . . . . . . . . : 15
To module . . . . . . . . . : O4TMKLIBI
To procedure . . . . . . . : prtjoblA
Statement . . . . . . . . . : 15
Message . . . . : R3PRO400/R3INLPGM: File Version: 7000, 173, 0, 0
*NONE Information 05/11/08 11:44:32.214640 R3INLPGM R3PRO400 *STMT R3INLPGM R3PRO400 *STMT
From module . . . . . . . . : O4TMKLIBI
From procedure . . . . . . : prtjoblA
Statement . . . . . . . . . : 15
To module . . . . . . . . . : O4TMKLIBI
To procedure . . . . . . . : prtjoblA
Statement . . . . . . . . . : 15
Message . . . . : R3PRO400/R3INLPGM: Product Version: 700, patch 173,
changelist 0
*NONE Information 05/11/08 11:44:32.214808 R3INLPGM R3PRO400 *STMT R3INLPGM R3PRO400 *STMT
From module . . . . . . . . : O4TMKLIBI
From procedure . . . . . . : prtjoblA
Statement . . . . . . . . . : 15
To module . . . . . . . . . : O4TMKLIBI
To procedure . . . . . . . : prtjoblA
Statement . . . . . . . . . : 15
Message . . . . : R3PRO400/R3INLPGM: Platform: os400 for releases OS400 3 5,
OS400 4 5, OS400 1 6
*NONE Information 05/11/08 11:44:32.214904 R3INLPGM R3PRO400 *STMT R3INLPGM R3PRO400 *STMT
From module . . . . . . . . : O4TMKLIBI
From procedure . . . . . . : prtjoblA
Statement . . . . . . . . . : 15
To module . . . . . . . . . : O4TMKLIBI
To procedure . . . . . . . : prtjoblA
Statement . . . . . . . . . : 15
Message . . . . : R3PRO400/R3INLPGM: Special Build Description: OPT (Aug 11
2008, 08:14:03) (ASCII in PASE ASCII build)
*NONE Information 05/11/08 11:44:32.230728 R3INLPGM R3PRO400 *STMT R3INLPGM R3PRO400 *STMT
From module . . . . . . . . : O4TMKLIBI
5722SS1 V5R4M0 060210 Display Job Log MASAPPRO 05/11/08 14:49:22 Page 2
Job name . . . . . . . . . . : WP02 User . . . . . . : PRO00 Number . . . . . . . . . . . : 303461
Job description . . . . . . : R3_00 Library . . . . . : R3PRO400
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST
From procedure . . . . . . : prtjoblA
Statement . . . . . . . . . : 15
To module . . . . . . . . . : O4TMKLIBI
To procedure . . . . . . . : prtjoblA
Statement . . . . . . . . . : 15
Message . . . . : R3INLPGM: Connect from Client Protocol: 610
*NONE Information 05/11/08 11:44:32.230840 R3INLPGM R3PRO400 *STMT R3INLPGM R3PRO400 *STMT
From module . . . . . . . . : O4TMKLIBI
From procedure . . . . . . : prtjoblA
Statement . . . . . . . . . : 15
To module . . . . . . . . . : O4TMKLIBI
To procedure . . . . . . . : prtjoblA
Statement . . . . . . . . . : 15
Message . . . . : R3INLPGM: Remote Link: /usr/sap/PRO/SYS/exe/run/DBSLDB4RMT
*NONE Information 05/11/08 11:44:32.268688 R3INLPGM R3PRO400 *STMT R3INLPGM R3PRO400 *STMT
From module . . . . . . . . : O4TMKLIBI
From procedure . . . . . . : prtjoblA
Statement . . . . . . . . . : 15
To module . . . . . . . . . : O4TMKLIBI
To procedure . . . . . . . : prtjoblA
Statement . . . . . . . . . : 15
Message . . . . : R3INLPGM: Kernel Library: SAPPROUCN
CPF9897 Completion 40 05/11/08 11:44:32.286120 QDBENCWT QSYS 0066 DBSLENCWT SAPPROUCN *STMT
To module . . . . . . . . . : DBSLENCWT
To procedure . . . . . . . : main
Statement . . . . . . . . . : 14
Message . . . . : CONCURRENT WRITE IS ENABLED.
Cause . . . . . : No additional online help information is available.
CPF9897 Completion 40 05/11/08 11:44:32.286136 QDBENCWT QSYS 0066 DBSLENCWT SAPPROUCN *STMT
To module . . . . . . . . . : DBSLENCWT
To procedure . . . . . . . : main
Statement . . . . . . . . . : 14
Message . . . . : CONCURRENT WRITE WILL BE ENABLED NEXT IPL.
Cause . . . . . : No additional online help information is available.
CPC2197 Completion 00 05/11/08 11:44:32.323144 QLICHLBL QSYS 013C QXDAEDRS QSYS *STMT
To module . . . . . . . . . : QXDAEDRS
To procedure . . . . . . . : QxdaProcessCommandEDRS
Statement . . . . . . . . . : 325
Message . . . . : Library SAPPROUCN removed from library list.
Cause . . . . . : If the RMVLIBLE command was used, SAPPROUCN was removed
from the user library list. If the CHGSYSLIBL command was used, SAPPROUCN
was removed from the system portion of the library list.
CPC2196 Completion 00 05/11/08 11:44:32.323368 QLICUSRL QSYS 0113 QXDAEDRS QSYS *STMT
To module . . . . . . . . . : QXDAEDRS
To procedure . . . . . . . : QxdaProcessCommandEDRS
Statement . . . . . . . . . : 325
Message . . . . : Library SAPPROUCN added to library list.
Cause . . . . . : If the ADDLIBLE command was used, SAPPROUCN was added to
the user library list. If the CHGSYSLIBL command was used, SAPPROUCN was
added to the system portion of the library list.
SAP4000 Information 00 05/11/08 11:44:32.336544 DBSLDB4RMT SAPPROUCN *STMT DBSLDB4RMT SAPPROUCN *STMT
From module . . . . . . . . : O4SAPUCI_E
5722SS1 V5R4M0 060210 Display Job Log MASAPPRO 05/11/08 14:49:22 Page 3
Job name . . . . . . . . . . : WP02 User . . . . . . : PRO00 Number . . . . . . . . . . . : 303461
Job description . . . . . . : R3_00 Library . . . . . : R3PRO400
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST
From procedure . . . . . . : O4_QMHSNDPM__FPCcN21iN21T4PUcR11O4_ERRC0100
Statement . . . . . . . . . : 4
To module . . . . . . . . . : DBSLDB4RMT
To procedure . . . . . . . : CXXPEP__Fv
Statement . . . . . . . . . : *N
Message . . . . : Connect from workprocess w2 on MASAPPRO_PRO_00
CPC2196 Completion 00 05/11/08 11:44:32.975448 QLICHLBL QSYS 013C CHGR3SYSLE SAPPROUCN *STMT
To module . . . . . . . . . : CHGR3SYSLE
To procedure . . . . . . . : CHGR3SYSLE
Statement . . . . . . . . . : 13600
Message . . . . : Library R3SYS added to library list.
Cause . . . . . : If the ADDLIBLE command was used, R3SYS was added to the
user library list. If the CHGSYSLIBL command was used, R3SYS was added to
the system portion of the library list.
SQL7917 Information 00 05/11/08 11:47:23.199272 QSQRUN3 QSYS *STMT QSQRUN3 QSYS *STMT
From module . . . . . . . . : QSQOPEN
From procedure . . . . . . : SNDINFOMSG
Statement . . . . . . . . . : 24269
To module . . . . . . . . . : QSQOPEN
To procedure . . . . . . . : OPQRYDBM
Statement . . . . . . . . . : 16590
Message . . . . : Access plan not updated.
Cause . . . . . : The query optimizer rebuilt the access plan for this
statement, but the program could not be updated. Another job may be running
the program. The program cannot be updated with the new access plan until a
job can obtain an exclusive lock on the program. The exclusive lock cannot
be obtained if another job is running the program, if the job does not have
proper authority to the program, or if the program is currently being saved.
The query will still run, but access plan rebuilds will continue to occur
until the program is updated. Recovery . . . : See previous messages from
the query optimizer to determine why the access plan has been rebuilt. To
ensure that the program gets updated with the new access plan, run the
program when no other active jobs are using it.
CPF9898 Information 40 05/11/08 11:54:11.399680 QXDAUTIL QSYS *STMT QXDAEDRS QSYS *STMT
From module . . . . . . . . : QXDATRACE
From procedure . . . . . . : QxdaWriteJoblog__FPciT1R16QxdaTraceControl
Statement . . . . . . . . . : 13
To module . . . . . . . . . : QXDAEDRS
To procedure . . . . . . . : QxdaConnectEDRSInternal__FPvPcT1PiT2T1R16clean
upMutexes_tP19XDAGlobalDataStruct
Statement . . . . . . . . . : 3266
Message . . . . : Connection #2, Server Job: 303463/QUSER/QXDARECVR.
Cause . . . . . : This message is used by application programs as a general
escape message.
CPF5009 Diagnostic 10 05/11/08 11:54:32.741480 QDBSIGEX QSYS 0D60 QSQRUN3 QSYS *STMT
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : CLEANUP
Statement . . . . . . . . . : 22987
Message . . . . : Duplicate record key in member RSEUINC.
Cause . . . . . : The output or update operation to member number 1 record
number 4942 format RSEUINC, for member RSEUINC file RSEUINC in library
R3PRODATA, failed. Member number 1 record number 4941 format RSEUINC has the
5722SS1 V5R4M0 060210 Display Job Log MASAPPRO 05/11/08 14:49:22 Page 4
Job name . . . . . . . . . . : WP02 User . . . . . . : PRO00 Number . . . . . . . . . . . : 303461
Job description . . . . . . : R3_00 Library . . . . . : R3PRO400
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST
same record key as member number 1 record number 4942 format RSEUINC. If
the record number is zero, the duplicate record key occurred on an output
operation. Recovery . . . : Change either record key so that the keys are
unique. Then try your request again.
CPF5034 Sender copy 30 05/11/08 11:54:32.741536 QDBSIGEX QSYS 01EA QDBSIGEX QSYS 01EA
Message . . . . : Duplicate key on access path.
Cause . . . . . : An output or update operation on record number 4942 record
format FORMAT0001 member number 1 failed because of a duplicate key in a
unique keyed member that is based on member RSEUINC file RSEUINC in library
R3PRODATA, or in a based-on member of RSEUINC. The failure could also have
been caused by an output or update operation done to another file by a
trigger program associated with file RSEUINC in library R3PRODATA. Recovery
. . . : See previously listed message CPF5009 to identify the file and
record with the duplicate key and change the key value so that it is unique.
Note that the file could be a file operated on by a trigger program. Then
try your request again. Possible choices for replying to message . . . . . .
. . . . . . . . . : C -- The request is canceled. I -- The request is
ignored.
CPF5034 Notify 30 05/11/08 11:54:32.741552 QDBSIGEX QSYS 01EA QSQRUN3 QSYS *STMT
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : CLEANUP
Statement . . . . . . . . . : 22987
Message . . . . : Duplicate key on access path.
Cause . . . . . : An output or update operation on record number 4942 record
format FORMAT0001 member number 1 failed because of a duplicate key in a
unique keyed member that is based on member RSEUINC file RSEUINC in library
R3PRODATA, or in a based-on member of RSEUINC. The failure could also have
been caused by an output or update operation done to another file by a
trigger program associated with file RSEUINC in library R3PRODATA. Recovery
. . . : See previously listed message CPF5009 to identify the file and
record with the duplicate key and change the key value so that it is unique.
Note that the file could be a file operated on by a trigger program. Then
try your request again. Possible choices for replying to message . . . . . .
. . . . . . . . . : C -- The request is canceled. I -- The request is
ignored.
SQL0803 Diagnostic 30 05/11/08 11:54:32.748064 QSQRUN3 QSYS *STMT QSQRUN3 QSYS *STMT
From module . . . . . . . . : QSQINS
From procedure . . . . . . : CLEANUP
Statement . . . . . . . . . : 24031
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : CLEANUP
Statement . . . . . . . . . : 24031
Message . . . . : Duplicate key value specified.
Cause . . . . . : An INSERT, UPDATE or ALTER TABLE statement was issued.
Unique index or unique constraint RSEUINC in R3PRODATA exists over one or
more columns of table RSEUINC in R3PRODATA. The operation cannot be
performed because one or more values would have produced a duplicate key in
the unique index or constraint. Recovery . . . : Change the statement so
that duplicate keys are not produced. For information on what rows contain
the duplicate key values, look at the previously listed messages in the job
log (DSPJOBLOG command) or press F10 (Display messages in job log) on this
display.
5722SS1 V5R4M0 060210 Display Job Log MASAPPRO 05/11/08 14:49:22 Page 5
Job name . . . . . . . . . . : WP02 User . . . . . . : PRO00 Number . . . . . . . . . . . : 303461
Job description . . . . . . : R3_00 Library . . . . . : R3PRO400
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST
SQL7917 Information 00 05/11/08 12:33:54.649416 QSQRUN3 QSYS *STMT QSQRUN3 QSYS *STMT
From module . . . . . . . . : QSQOPEN
From procedure . . . . . . : SNDINFOMSG
Statement . . . . . . . . . : 24269
To module . . . . . . . . . : QSQOPEN
To procedure . . . . . . . : STORE_ACCPLN
Statement . . . . . . . . . : 19339
Message . . . . : Access plan not updated.
Cause . . . . . : The query optimizer rebuilt the access plan for this
statement, but the program could not be updated. Another job may be running
the program. The program cannot be updated with the new access plan until a
job can obtain an exclusive lock on the program. The exclusive lock cannot
be obtained if another job is running the program, if the job does not have
proper authority to the program, or if the program is currently being saved.
The query will still run, but access plan rebuilds will continue to occur
until the program is updated. Recovery . . . : See previous messages from
the query optimizer to determine why the access plan has been rebuilt. To
ensure that the program gets updated with the new access plan, run the
program when no other active jobs are using it.
SQL7917 Information 00 05/11/08 12:33:54.709808 QSQRUN3 QSYS *STMT QSQRUN3 QSYS *STMT
From module . . . . . . . . : QSQOPEN
From procedure . . . . . . : SNDINFOMSG
Statement . . . . . . . . . : 24269
To module . . . . . . . . . : QSQOPEN
To procedure . . . . . . . : STORE_ACCPLN
Statement . . . . . . . . . : 19339
Message . . . . : Access plan not updated.
Cause . . . . . : The query optimizer rebuilt the access plan for this
statement, but the program could not be updated. Another job may be running
the program. The program cannot be updated with the new access plan until a
job can obtain an exclusive lock on the program. The exclusive lock cannot
be obtained if another job is running the program, if the job does not have
proper authority to the program, or if the program is currently being saved.
The query will still run, but access plan rebuilds will continue to occur
until the program is updated. Recovery . . . : See previous messages from
the query optimizer to determine why the access plan has been rebuilt. To
ensure that the program gets updated with the new access plan, run the
program when no other active jobs are using it.
SQL7917 Information 00 05/11/08 12:33:54.745288 QSQRUN3 QSYS *STMT QSQRUN3 QSYS *STMT
From module . . . . . . . . : QSQOPEN
From procedure . . . . . . : SNDINFOMSG
Statement . . . . . . . . . : 24269
To module . . . . . . . . . : QSQOPEN
To procedure . . . . . . . : STORE_ACCPLN
Statement . . . . . . . . . : 19339
Message . . . . : Access plan not updated.
Cause . . . . . : The query optimizer rebuilt the access plan for this
statement, but the program could not be updated. Another job may be running
the program. The program cannot be updated with the new access plan until a
job can obtain an exclusive lock on the program. The exclusive lock cannot
be obtained if another job is running the program, if the job does not have
proper authority to the program, or if the program is currently being saved.
5722SS1 V5R4M0 060210 Display Job Log MASAPPRO 05/11/08 14:49:22 Page 6
Job name . . . . . . . . . . : WP02 User . . . . . . : PRO00 Number . . . . . . . . . . . : 303461
Job description . . . . . . : R3_00 Library . . . . . : R3PRO400
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST
The query will still run, but access plan rebuilds will continue to occur
until the program is updated. Recovery . . . : See previous messages from
the query optimizer to determine why the access plan has been rebuilt. To
ensure that the program gets updated with the new access plan, run the
program when no other active jobs are using it.
SQL7917 Information 00 05/11/08 12:34:28.245160 QSQRUN3 QSYS *STMT QSQRUN3 QSYS *STMT
From module . . . . . . . . : QSQOPEN
From procedure . . . . . . : SNDINFOMSG
Statement . . . . . . . . . : 24269
To module . . . . . . . . . : QSQOPEN
To procedure . . . . . . . : OPQRYDBM
Statement . . . . . . . . . : 16643
Message . . . . : Access plan not updated.
Cause . . . . . : The query optimizer rebuilt the access plan for this
statement, but the program could not be updated. Another job may be running
the program. The program cannot be updated with the new access plan until a
job can obtain an exclusive lock on the program. The exclusive lock cannot
be obtained if another job is running the program, if the job does not have
proper authority to the program, or if the program is currently being saved.
The query will still run, but access plan rebuilds will continue to occur
until the program is updated. Recovery . . . : See previous messages from
the query optimizer to determine why the access plan has been rebuilt. To
ensure that the program gets updated with the new access plan, run the
program when no other active jobs are using it.
SQL7917 Information 00 05/11/08 12:49:06.875752 QSQRUN3 QSYS *STMT QSQRUN3 QSYS *STMT
From module . . . . . . . . : QSQOPEN
From procedure . . . . . . : SNDINFOMSG
Statement . . . . . . . . . : 24269
To module . . . . . . . . . : QSQOPEN
To procedure . . . . . . . : STORE_ACCPLN
Statement . . . . . . . . . : 19339
Message . . . . : Access plan not updated.
Cause . . . . . : The query optimizer rebuilt the access plan for this
statement, but the program could not be updated. Another job may be running
the program. The program cannot be updated with the new access plan until a
job can obtain an exclusive lock on the program. The exclusive lock cannot
be obtained if another job is running the program, if the job does not have
proper authority to the program, or if the program is currently being saved.
The query will still run, but access plan rebuilds will continue to occur
until the program is updated. Recovery . . . : See previous messages from
the query optimizer to determine why the access plan has been rebuilt. To
ensure that the program gets updated with the new access plan, run the
program when no other active jobs are using it.
SQL7917 Information 00 05/11/08 12:49:06.935840 QSQRUN3 QSYS *STMT QSQRUN3 QSYS *STMT
From module . . . . . . . . : QSQOPEN
From procedure . . . . . . : SNDINFOMSG
Statement . . . . . . . . . : 24269
To module . . . . . . . . . : QSQOPEN
To procedure . . . . . . . : STORE_ACCPLN
Statement . . . . . . . . . : 19339
Message . . . . : Access plan not updated.
Cause . . . . . : The query optimizer rebuilt the access plan for this
5722SS1 V5R4M0 060210 Display Job Log MASAPPRO 05/11/08 14:49:22 Page 7
Job name . . . . . . . . . . : WP02 User . . . . . . : PRO00 Number . . . . . . . . . . . : 303461
Job description . . . . . . : R3_00 Library . . . . . : R3PRO400
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST
statement, but the program could not be updated. Another job may be running
the program. The program cannot be updated with the new access plan until a
job can obtain an exclusive lock on the program. The exclusive lock cannot
be obtained if another job is running the program, if the job does not have
proper authority to the program, or if the program is currently being saved.
The query will still run, but access plan rebuilds will continue to occur
until the program is updated. Recovery . . . : See previous messages from
the query optimizer to determine why the access plan has been rebuilt. To
ensure that the program gets updated with the new access plan, run the
program when no other active jobs are using it.
SQL7917 Information 00 05/11/08 12:49:06.965560 QSQRUN3 QSYS *STMT QSQRUN3 QSYS *STMT
From module . . . . . . . . : QSQOPEN
From procedure . . . . . . : SNDINFOMSG
Statement . . . . . . . . . : 24269
To module . . . . . . . . . : QSQOPEN
To procedure . . . . . . . : STORE_ACCPLN
Statement . . . . . . . . . : 19339
Message . . . . : Access plan not updated.
Cause . . . . . : The query optimizer rebuilt the access plan for this
statement, but the program could not be updated. Another job may be running
the program. The program cannot be updated with the new access plan until a
job can obtain an exclusive lock on the program. The exclusive lock cannot
be obtained if another job is running the program, if the job does not have
proper authority to the program, or if the program is currently being saved.
The query will still run, but access plan rebuilds will continue to occur
until the program is updated. Recovery . . . : See previous messages from
the query optimizer to determine why the access plan has been rebuilt. To
ensure that the program gets updated with the new access plan, run the
program when no other active jobs are using it.
CPF9898 Information 40 05/11/08 12:50:51.470216 QXDAUTIL QSYS *STMT QXDAEDRS QSYS *STMT
From module . . . . . . . . : QXDATRACE
From procedure . . . . . . : QxdaWriteJoblog__FPciT1R16QxdaTraceControl
Statement . . . . . . . . . : 13
To module . . . . . . . . . : QXDAEDRS
To procedure . . . . . . . : QxdaConnectEDRSInternal__FPvPcT1PiT2T1R16clean
upMutexes_tP19XDAGlobalDataStruct
Statement . . . . . . . . . : 3266
Message . . . . : Connection #2, Server Job: 303480/QUSER/QXDARECVR.
Cause . . . . . : This message is used by application programs as a general
escape message.
SQL7917 Information 00 05/11/08 12:59:55.956784 QSQRUN3 QSYS *STMT QSQRUN3 QSYS *STMT
From module . . . . . . . . : QSQOPEN
From procedure . . . . . . : SNDINFOMSG
Statement . . . . . . . . . : 24269
To module . . . . . . . . . : QSQOPEN
To procedure . . . . . . . : OPQRYDBM
Statement . . . . . . . . . : 16590
Message . . . . : Access plan not updated.
Cause . . . . . : The query optimizer rebuilt the access plan for this
statement, but the program could not be updated. Another job may be running
the program. The program cannot be updated with the new access plan until a
job can obtain an exclusive lock on the program. The exclusive lock cannot
5722SS1 V5R4M0 060210 Display Job Log MASAPPRO 05/11/08 14:49:22 Page 8
Job name . . . . . . . . . . : WP02 User . . . . . . : PRO00 Number . . . . . . . . . . . : 303461
Job description . . . . . . : R3_00 Library . . . . . : R3PRO400
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST
be obtained if another job is running the program, if the job does not have
proper authority to the program, or if the program is currently being saved.
The query will still run, but access plan rebuilds will continue to occur
until the program is updated. Recovery . . . : See previous messages from
the query optimizer to determine why the access plan has been rebuilt. To
ensure that the program gets updated with the new access plan, run the
program when no other active jobs are using it.
CPC2206 Completion 00 05/11/08 13:06:49.865608 QSYCHONR QSYS 0665 QLIINSRT QSYS 0453
Message . . . . : Ownership of object SAPFGUTRBL in R3PRO02070 type *SQLPKG
changed.
Cause . . . . . : The ownership of object SAPFGUTRBL in library R3PRO02070
type *SQLPKG has changed.
CPC2206 Completion 00 05/11/08 13:06:50.312272 QSYCHONR QSYS 0665 QSQXPGM QSYS 0469
Message . . . . : Ownership of object SAPFGUTRBL in R3PRO02070 type *SQLPKG
changed.
Cause . . . . . : The ownership of object SAPFGUTRBL in library R3PRO02070
type *SQLPKG has changed.
SQL0204 Diagnostic 30 05/11/08 13:06:51.011064 QSQPRCED QSYS *STMT QSQPRCED QSYS *STMT
From module . . . . . . . . : QSQPRCED
From procedure . . . . . . : SENDDIAG
Statement . . . . . . . . . : 19346
To module . . . . . . . . . : QSQPRCED
To procedure . . . . . . . : QSQPRCED
Statement . . . . . . . . . : 18435
Message . . . . : T801WEI in R3PRO32060 type *SQLPKG not found.
Cause . . . . . : T801WEI in R3PRO32060 type *SQLPKG was not found. If the
member name is *ALL, the table is not partitioned. If this is an ALTER TABLE
statement and the type is *N, a constraint or partition was not found. If
this is not an ALTER TABLE statement and the type is *N, a function,
procedure, trigger or sequence object was not found. If a function was not
found, T801WEI is the service program that contains the function. The
function will not be found unless the external name and usage name match
exactly. Examine the job log for a message that gives more details on which
function name is being searched for and the name that did not match.
Recovery . . . : Change the name and try the request again. If the
object is a node group, ensure that the DB2 Multisystem product is installed
on your system and create a nodegroup with the CRTNODGRP CL command. If an
external function was not found, be sure that the case of the EXTERNAL NAME
on the CREATE FUNCTION statement exactly matches the case of the name
exported by the service program.
CPC2206 Completion 00 05/11/08 13:06:51.378408 QSYCHONR QSYS 0665 QLIINSRT QSYS 0453
Message . . . . : Ownership of object T801WEI in R3PRO32060 type *SQLPKG
changed.
Cause . . . . . : The ownership of object T801WEI in library R3PRO32060 type
*SQLPKG has changed.
CPC2206 Completion 00 05/11/08 13:06:51.439824 QSYCHONR QSYS 0665 QSQXPGM QSYS 0469
Message . . . . : Ownership of object T801WEI in R3PRO32060 type *SQLPKG
changed.
Cause . . . . . : The ownership of object T801WEI in library R3PRO32060 type
*SQLPKG has changed.
CPF5009 Diagnostic 10 05/11/08 13:06:51.708688 QDBSIGEX QSYS 0D60 QSQRUN3 QSYS *STMT
To module . . . . . . . . . : QSQINS
5722SS1 V5R4M0 060210 Display Job Log MASAPPRO 05/11/08 14:49:22 Page 9
Job name . . . . . . . . . . : WP02 User . . . . . . : PRO00 Number . . . . . . . . . . . : 303461
Job description . . . . . . : R3_00 Library . . . . . : R3PRO400
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST
To procedure . . . . . . . : SQL_Insert
Statement . . . . . . . . . : 10309
Message . . . . : Duplicate record key in member T801W.
Cause . . . . . : The output or update operation to member number 1 record
number 0 format T801W, for member T801W file T801W in library R3PRODATA,
failed. Member number 1 record number 751 format T801W has the same record
key as member number 1 record number 0 format T801W. If the record number
is zero, the duplicate record key occurred on an output operation. Recovery
. . . : Change either record key so that the keys are unique. Then try
your request again.
CPF5034 Sender copy 30 05/11/08 13:06:51.708736 QDBSIGEX QSYS 01EA QDBSIGEX QSYS 01EA
Message . . . . : Duplicate key on access path.
Cause . . . . . : An output or update operation on record number 0 record
format FORMAT0001 member number 1 failed because of a duplicate key in a
unique keyed member that is based on member T801W file T801W in library
R3PRODATA, or in a based-on member of T801W. The failure could also have
been caused by an output or update operation done to another file by a
trigger program associated with file T801W in library R3PRODATA. Recovery .
. . : See previously listed message CPF5009 to identify the file and
record with the duplicate key and change the key value so that it is unique.
Note that the file could be a file operated on by a trigger program. Then
try your request again. Possible choices for replying to message . . . . . .
. . . . . . . . . : C -- The request is canceled. I -- The request is
ignored.
CPF5034 Notify 30 05/11/08 13:06:51.708776 QDBSIGEX QSYS 01EA QSQRUN3 QSYS *STMT
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : SQL_Insert
Statement . . . . . . . . . : 10309
Message . . . . : Duplicate key on access path.
Cause . . . . . : An output or update operation on record number 0 record
format FORMAT0001 member number 1 failed because of a duplicate key in a
unique keyed member that is based on member T801W file T801W in library
R3PRODATA, or in a based-on member of T801W. The failure could also have
been caused by an output or update operation done to another file by a
trigger program associated with file T801W in library R3PRODATA. Recovery .
. . : See previously listed message CPF5009 to identify the file and
record with the duplicate key and change the key value so that it is unique.
Note that the file could be a file operated on by a trigger program. Then
try your request again. Possible choices for replying to message . . . . . .
. . . . . . . . . : C -- The request is canceled. I -- The request is
ignored.
SQL0803 Diagnostic 30 05/11/08 13:06:51.710352 QSQRUN3 QSYS *STMT QSQRUN3 QSYS *STMT
From module . . . . . . . . : QSQINS
From procedure . . . . . . : CLEANUP
Statement . . . . . . . . . : 24031
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : CLEANUP
Statement . . . . . . . . . : 24031
Message . . . . : Duplicate key value specified.
Cause . . . . . : An INSERT, UPDATE or ALTER TABLE statement was issued.
Unique index or unique constraint T801W in R3PRODATA exists over one or more
columns of table T801W in R3PRODATA. The operation cannot be performed
5722SS1 V5R4M0 060210 Display Job Log MASAPPRO 05/11/08 14:49:22 Page 10
Job name . . . . . . . . . . : WP02 User . . . . . . : PRO00 Number . . . . . . . . . . . : 303461
Job description . . . . . . : R3_00 Library . . . . . : R3PRO400
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST
because one or more values would have produced a duplicate key in the unique
index or constraint. Recovery . . . : Change the statement so that
duplicate keys are not produced. For information on what rows contain the
duplicate key values, look at the previously listed messages in the job log
(DSPJOBLOG command) or press F10 (Display messages in job log) on this
display.
SQL0518 Diagnostic 30 05/11/08 13:06:51.732720 QSQROUTS QSYS *STMT QSQROUTS QSYS *STMT
From module . . . . . . . . : QSQCLNUP
From procedure . . . . . . : SQROUTE_CLEANUP
Statement . . . . . . . . . : 3814
To module . . . . . . . . . : QSQCLNUP
To procedure . . . . . . . : SQROUTE_CLEANUP
Statement . . . . . . . . . : 3814
Message . . . . : Prepared statement RD0IAAAABA not found.
Cause . . . . . : An EXECUTE statement referred to the statement RD0IAAAABA.
RD0IAAAABA is not a valid prepared statement. The statement has one of the
following conditions: -- The statement has never been prepared. -- The
statement identifies a prepared SELECT or DECLARE PROCEDURE statement. --
The statement was in error at prepare or bind time. -- The statement was
prepared in another program or another call of this program and the program
was created with CLOSQLCSR(*ENDPGM). -- The statement was prepared in
another module or another call of this module and the module was created
with CLOSQLCSR(*ENDMOD). -- The statement was prepared in another call of
this program and programs which have run SQL statements have ended and the
program was created with CLOSQLCSR(*ENDSQL). -- The statement was prepared
in another call of this module and the activation group ended between calls.
The module was created with CLOSQLCSR(*ENDACTGRP). -- The prepared statement
was destroyed by a COMMIT or ROLLBACK statement. This only occurs when
connected to a database other than DB2 UDB for iSeries. Recovery . . . :
Do one of the following: -- If RD0IAAAABA identifies a prepared SELECT or
DECLARE PROCEDURE statement, a different prepared statement must be named in
the EXECUTE statement. -- If the statement had errors, correct the errors
and either prepare the statement again or precompile the program again. --
Make certain that RD0IAAAABA has been prepared in the same program or module
call prior to using the EXECUTE statement or specify either
CLOSQLCSR(ENDSQL), CLOSQLCSR(ENDJOB), or CLOSQLCSR(*ENDACTGRP) when
precompiling the application. -- If the statement was deleted by a COMMIT or
ROLLBACK, either specify PREPARE WITH HOLD or bind the program with the
correct option to preserve prepared statements.
CPF5009 Diagnostic 10 05/11/08 13:06:56.094184 QDBSIGEX QSYS 0D60 QSQRUN3 QSYS *STMT
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : SQL_Insert
Statement . . . . . . . . . : 10309
Message . . . . : Duplicate record key in member ATAB.
Cause . . . . . : The output or update operation to member number 1 record
number 644685 format ATAB, for member ATAB file ATAB in library R3PRODATA,
failed. Member number 1 record number 635738 format ATAB has the same record
key as member number 1 record number 644685 format ATAB. If the record
5722SS1 V5R4M0 060210 Display Job Log MASAPPRO 05/11/08 14:49:22 Page 51
Job name . . . . . . . . . . : WP02 User . . . . . . : PRO00 Number . . . . . . . . . . . : 303461
Job description . . . . . . : R3_00 Library . . . . . : R3PRO400
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST
number is zero, the duplicate record key occurred on an output operation.
Recovery . . . : Change either record key so that the keys are unique.
Then try your request again.
CPF5034 Sender copy 30 05/11/08 13:06:56.094240 QDBSIGEX QSYS 01EA QDBSIGEX QSYS 01EA
Message . . . . : Duplicate key on access path.
Cause . . . . . : An output or update operation on record number 644685
record format FORMAT0001 member number 1 failed because of a duplicate key
in a unique keyed member that is based on member ATAB file ATAB in library
R3PRODATA, or in a based-on member of ATAB. The failure could also have been
caused by an output or update operation done to another file by a trigger
program associated with file ATAB in library R3PRODATA. Recovery . . . :
See previously listed message CPF5009 to identify the file and record with
the duplicate key and change the key value so that it is unique. Note that
the file could be a file operated on by a trigger program. Then try your
request again. Possible choices for replying to message . . . . . . . . . .
. . . . . : C -- The request is canceled. I -- The request is ignored.
CPF5034 Notify 30 05/11/08 13:06:56.094256 QDBSIGEX QSYS 01EA QSQRUN3 QSYS *STMT
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : SQL_Insert
Statement . . . . . . . . . : 10309
Message . . . . : Duplicate key on access path.
Cause . . . . . : An output or update operation on record number 644685
record format FORMAT0001 member number 1 failed because of a duplicate key
in a unique keyed member that is based on member ATAB file ATAB in library
R3PRODATA, or in a based-on member of ATAB. The failure could also have been
caused by an output or update operation done to another file by a trigger
program associated with file ATAB in library R3PRODATA. Recovery . . . :
See previously listed message CPF5009 to identify the file and record with
the duplicate key and change the key value so that it is unique. Note that
the file could be a file operated on by a trigger program. Then try your
request again. Possible choices for replying to message . . . . . . . . . .
. . . . . : C -- The request is canceled. I -- The request is ignored.
SQL0803 Diagnostic 30 05/11/08 13:06:56.094376 QSQRUN3 QSYS *STMT QSQRUN3 QSYS *STMT
From module . . . . . . . . : QSQINS
From procedure . . . . . . : CLEANUP
Statement . . . . . . . . . : 24031
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : CLEANUP
Statement . . . . . . . . . : 24031
Message . . . . : Duplicate key value specified.
Cause . . . . . : An INSERT, UPDATE or ALTER TABLE statement was issued.
Unique index or unique constraint ATAB in R3PRODATA exists over one or more
columns of table ATAB in R3PRODATA. The operation cannot be performed
because one or more values would have produced a duplicate key in the unique
index or constraint. Recovery . . . : Change the statement so that
duplicate keys are not produced. For information on what rows contain the
duplicate key values, look at the previously listed messages in the job log
(DSPJOBLOG command) or press F10 (Display messages in job log) on this
display.
CPF5009 Diagnostic 10 05/11/08 13:06:56.096008 QDBSIGEX QSYS 0D60 QSQRUN3 QSYS *STMT
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : SQL_Insert
5722SS1 V5R4M0 060210 Display Job Log MASAPPRO 05/11/08 14:49:22 Page 52
Job name . . . . . . . . . . : WP02 User . . . . . . : PRO00 Number . . . . . . . . . . . : 303461
Job description . . . . . . : R3_00 Library . . . . . : R3PRO400
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST
Statement . . . . . . . . . : 10309
Message . . . . : Duplicate record key in member ATAB.
Cause . . . . . : The output or update operation to member number 1 record
number 644685 format ATAB, for member ATAB file ATAB in library R3PRODATA,
failed. Member number 1 record number 635779 format ATAB has the same record
key as member number 1 record number 644685 format ATAB. If the record
number is zero, the duplicate record key occurred on an output operation.
Recovery . . . : Change either record key so that the keys are unique.
Then try your request again.
CPF5034 Sender copy 30 05/11/08 13:06:56.096048 QDBSIGEX QSYS 01EA QDBSIGEX QSYS 01EA
Message . . . . : Duplicate key on access path.
Cause . . . . . : An output or update operation on record number 644685
record format FORMAT0001 member number 1 failed because of a duplicate key
in a unique keyed member that is based on member ATAB file ATAB in library
R3PRODATA, or in a based-on member of ATAB. The failure could also have been
caused by an output or update operation done to another file by a trigger
program associated with file ATAB in library R3PRODATA. Recovery . . . :
See previously listed message CPF5009 to identify the file and record with
the duplicate key and change the key value so that it is unique. Note that
the file could be a file operated on by a trigger program. Then try your
request again. Possible choices for replying to message . . . . . . . . . .
. . . . . : C -- The request is canceled. I -- The request is ignored.
CPF5034 Notify 30 05/11/08 13:06:56.096080 QDBSIGEX QSYS 01EA QSQRUN3 QSYS *STMT
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : SQL_Insert
Statement . . . . . . . . . : 10309
Message . . . . : Duplicate key on access path.
Cause . . . . . : An output or update operation on record number 644685
record format FORMAT0001 member number 1 failed because of a duplicate key
in a unique keyed member that is based on member ATAB file ATAB in library
R3PRODATA, or in a based-on member of ATAB. The failure could also have been
caused by an output or update operation done to another file by a trigger
program associated with file ATAB in library R3PRODATA. Recovery . . . :
See previously listed message CPF5009 to identify the file and record with
the duplicate key and change the key value so that it is unique. Note that
the file could be a file operated on by a trigger program. Then try your
request again. Possible choices for replying to message . . . . . . . . . .
. . . . . : C -- The request is canceled. I -- The request is ignored.
SQL0803 Diagnostic 30 05/11/08 13:06:56.096208 QSQRUN3 QSYS *STMT QSQRUN3 QSYS *STMT
From module . . . . . . . . : QSQINS
From procedure . . . . . . : CLEANUP
Statement . . . . . . . . . : 24031
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : CLEANUP
Statement . . . . . . . . . : 24031
Message . . . . : Duplicate key value specified.
Cause . . . . . : An INSERT, UPDATE or ALTER TABLE statement was issued.
Unique index or unique constraint ATAB in R3PRODATA exists over one or more
columns of table ATAB in R3PRODATA. The operation cannot be performed
because one or more values would have produced a duplicate key in the unique
index or constraint. Recovery . . . : Change the statement so that
duplicate keys are not produced. For information on what rows contain the
5722SS1 V5R4M0 060210 Display Job Log MASAPPRO 05/11/08 14:49:22 Page 53
Job name . . . . . . . . . . : WP02 User . . . . . . : PRO00 Number . . . . . . . . . . . : 303461
Job description . . . . . . : R3_00 Library . . . . . : R3PRO400
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST
duplicate key values, look at the previously listed messages in the job log
(DSPJOBLOG command) or press F10 (Display messages in job log) on this
display.
CPF5009 Diagnostic 10 05/11/08 13:06:56.098520 QDBSIGEX QSYS 0D60 QSQRUN3 QSYS *STMT
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : SQL_Insert
Statement . . . . . . . . . : 10309
Message . . . . : Duplicate record key in member ATAB.
Cause . . . . . : The output or update operation to member number 1 record
number 644685 format ATAB, for member ATAB file ATAB in library R3PRODATA,
failed. Member number 1 record number 635819 format ATAB has the same record
key as member number 1 record number 644685 format ATAB. If the record
number is zero, the duplicate record key occurred on an output operation.
Recovery . . . : Change either record key so that the keys are unique.
Then try your request again.
CPF5034 Sender copy 30 05/11/08 13:06:56.098552 QDBSIGEX QSYS 01EA QDBSIGEX QSYS 01EA
Message . . . . : Duplicate key on access path.
Cause . . . . . : An output or update operation on record number 644685
record format FORMAT0001 member number 1 failed because of a duplicate key
in a unique keyed member that is based on member ATAB file ATAB in library
R3PRODATA, or in a based-on member of ATAB. The failure could also have been
caused by an output or update operation done to another file by a trigger
program associated with file ATAB in library R3PRODATA. Recovery . . . :
See previously listed message CPF5009 to identify the file and record with
the duplicate key and change the key value so that it is unique. Note that
the file could be a file operated on by a trigger program. Then try your
request again. Possible choices for replying to message . . . . . . . . . .
. . . . . : C -- The request is canceled. I -- The request is ignored.
CPF5034 Notify 30 05/11/08 13:06:56.098568 QDBSIGEX QSYS 01EA QSQRUN3 QSYS *STMT
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : SQL_Insert
Statement . . . . . . . . . : 10309
Message . . . . : Duplicate key on access path.
Cause . . . . . : An output or update operation on record number 644685
record format FORMAT0001 member number 1 failed because of a duplicate key
in a unique keyed member that is based on member ATAB file ATAB in library
R3PRODATA, or in a based-on member of ATAB. The failure could also have been
caused by an output or update operation done to another file by a trigger
program associated with file ATAB in library R3PRODATA. Recovery . . . :
See previously listed message CPF5009 to identify the file and record with
the duplicate key and change the key value so that it is unique. Note that
the file could be a file operated on by a trigger program. Then try your
request again. Possible choices for replying to message . . . . . . . . . .
. . . . . : C -- The request is canceled. I -- The request is ignored.
SQL0803 Diagnostic 30 05/11/08 13:06:56.098720 QSQRUN3 QSYS *STMT QSQRUN3 QSYS *STMT
From module . . . . . . . . : QSQINS
From procedure . . . . . . : CLEANUP
Statement . . . . . . . . . : 24031
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : CLEANUP
Statement . . . . . . . . . : 24031
Message . . . . : Duplicate key value specified.
5722SS1 V5R4M0 060210 Display Job Log MASAPPRO 05/11/08 14:49:22 Page 54
Job name . . . . . . . . . . : WP02 User . . . . . . : PRO00 Number . . . . . . . . . . . : 303461
Job description . . . . . . : R3_00 Library . . . . . : R3PRO400
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST
Cause . . . . . : An INSERT, UPDATE or ALTER TABLE statement was issued.
Unique index or unique constraint ATAB in R3PRODATA exists over one or more
columns of table ATAB in R3PRODATA. The operation cannot be performed
because one or more values would have produced a duplicate key in the unique
index or constraint. Recovery . . . : Change the statement so that
duplicate keys are not produced. For information on what rows contain the
duplicate key values, look at the previously listed messages in the job log
(DSPJOBLOG command) or press F10 (Display messages in job log) on this
display.
CPF5009 Diagnostic 10 05/11/08 13:06:56.101560 QDBSIGEX QSYS 0D60 QSQRUN3 QSYS *STMT
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : SQL_Insert
Statement . . . . . . . . . : 10309
Message . . . . : Duplicate record key in member ATAB.
Cause . . . . . : The output or update operation to member number 1 record
number 644685 format ATAB, for member ATAB file ATAB in library R3PRODATA,
failed. Member number 1 record number 635865 format ATAB has the same record
key as member number 1 record number 644685 format ATAB. If the record
number is zero, the duplicate record key occurred on an output operation.
Recovery . . . : Change either record key so that the keys are unique.
Then try your request again.
CPF5034 Sender copy 30 05/11/08 13:06:56.101592 QDBSIGEX QSYS 01EA QDBSIGEX QSYS 01EA
Message . . . . : Duplicate key on access path.
Cause . . . . . : An output or update operation on record number 644685
record format FORMAT0001 member number 1 failed because of a duplicate key
in a unique keyed member that is based on member ATAB file ATAB in library
R3PRODATA, or in a based-on member of ATAB. The failure could also have been
caused by an output or update operation done to another file by a trigger
program associated with file ATAB in library R3PRODATA. Recovery . . . :
See previously listed message CPF5009 to identify the file and record with
the duplicate key and change the key value so that it is unique. Note that
the file could be a file operated on by a trigger program. Then try your
request again. Possible choices for replying to message . . . . . . . . . .
. . . . . : C -- The request is canceled. I -- The request is ignored.
CPF5034 Notify 30 05/11/08 13:06:56.101608 QDBSIGEX QSYS 01EA QSQRUN3 QSYS *STMT
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : SQL_Insert
Statement . . . . . . . . . : 10309
Message . . . . : Duplicate key on access path.
Cause . . . . . : An output or update operation on record number 644685
record format FORMAT0001 member number 1 failed because of a duplicate key
in a unique keyed member that is based on member ATAB file ATAB in library
R3PRODATA, or in a based-on member of ATAB. The failure could also have been
caused by an output or update operation done to another file by a trigger
program associated with file ATAB in library R3PRODATA. Recovery . . . :
See previously listed message CPF5009 to identify the file and record with
the duplicate key and change the key value so that it is unique. Note that
the file could be a file operated on by a trigger program. Then try your
request again. Possible choices for replying to message . . . . . . . . . .
. . . . . : C -- The request is canceled. I -- The request is ignored.
SQL0803 Diagnostic 30 05/11/08 13:06:56.101760 QSQRUN3 QSYS *STMT QSQRUN3 QSYS *STMT
From module . . . . . . . . : QSQINS
5722SS1 V5R4M0 060210 Display Job Log MASAPPRO 05/11/08 14:49:22 Page 55
Job name . . . . . . . . . . : WP02 User . . . . . . : PRO00 Number . . . . . . . . . . . : 303461
Job description . . . . . . : R3_00 Library . . . . . : R3PRO400
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST
From procedure . . . . . . : CLEANUP
Statement . . . . . . . . . : 24031
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : CLEANUP
Statement . . . . . . . . . : 24031
Message . . . . : Duplicate key value specified.
Cause . . . . . : An INSERT, UPDATE or ALTER TABLE statement was issued.
Unique index or unique constraint ATAB in R3PRODATA exists over one or more
columns of table ATAB in R3PRODATA. The operation cannot be performed
because one or more values would have produced a duplicate key in the unique
index or constraint. Recovery . . . : Change the statement so that
duplicate keys are not produced. For information on what rows contain the
duplicate key values, look at the previously listed messages in the job log
(DSPJOBLOG command) or press F10 (Display messages in job log) on this
display.
CPF5009 Diagnostic 10 05/11/08 13:06:56.105864 QDBSIGEX QSYS 0D60 QSQRUN3 QSYS *STMT
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : SQL_Insert
Statement . . . . . . . . . : 10309
Message . . . . : Duplicate record key in member ATAB.
Cause . . . . . : The output or update operation to member number 1 record
number 644685 format ATAB, for member ATAB file ATAB in library R3PRODATA,
failed. Member number 1 record number 635906 format ATAB has the same record
key as member number 1 record number 644685 format ATAB. If the record
number is zero, the duplicate record key occurred on an output operation.
Recovery . . . : Change either record key so that the keys are unique.
Then try your request again.
CPF5034 Sender copy 30 05/11/08 13:06:56.105904 QDBSIGEX QSYS 01EA QDBSIGEX QSYS 01EA
Message . . . . : Duplicate key on access path.
Cause . . . . . : An output or update operation on record number 644685
record format FORMAT0001 member number 1 failed because of a duplicate key
in a unique keyed member that is based on member ATAB file ATAB in library
R3PRODATA, or in a based-on member of ATAB. The failure could also have been
caused by an output or update operation done to another file by a trigger
program associated with file ATAB in library R3PRODATA. Recovery . . . :
See previously listed message CPF5009 to identify the file and record with
the duplicate key and change the key value so that it is unique. Note that
the file could be a file operated on by a trigger program. Then try your
request again. Possible choices for replying to message . . . . . . . . . .
. . . . . : C -- The request is canceled. I -- The request is ignored.
CPF5034 Notify 30 05/11/08 13:06:56.105920 QDBSIGEX QSYS 01EA QSQRUN3 QSYS *STMT
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : SQL_Insert
Statement . . . . . . . . . : 10309
Message . . . . : Duplicate key on access path.
Cause . . . . . : An output or update operation on record number 644685
record format FORMAT0001 member number 1 failed because of a duplicate key
in a unique keyed member that is based on member ATAB file ATAB in library
R3PRODATA, or in a based-on member of ATAB. The failure could also have been
caused by an output or update operation done to another file by a trigger
program associated with file ATAB in library R3PRODATA. Recovery . . . :
See previously listed message CPF5009 to identify the file and record with
5722SS1 V5R4M0 060210 Display Job Log MASAPPRO 05/11/08 14:49:22 Page 56
Job name . . . . . . . . . . : WP02 User . . . . . . : PRO00 Number . . . . . . . . . . . : 303461
Job description . . . . . . : R3_00 Library . . . . . : R3PRO400
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST
the duplicate key and change the key value so that it is unique. Note that
the file could be a file operated on by a trigger program. Then try your
request again. Possible choices for replying to message . . . . . . . . . .
. . . . . : C -- The request is canceled. I -- The request is ignored.
SQL0803 Diagnostic 30 05/11/08 13:06:56.106056 QSQRUN3 QSYS *STMT QSQRUN3 QSYS *STMT
From module . . . . . . . . : QSQINS
From procedure . . . . . . : CLEANUP
Statement . . . . . . . . . : 24031
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : CLEANUP
Statement . . . . . . . . . : 24031
Message . . . . : Duplicate key value specified.
Cause . . . . . : An INSERT, UPDATE or ALTER TABLE statement was issued.
Unique index or unique constraint ATAB in R3PRODATA exists over one or more
columns of table ATAB in R3PRODATA. The operation cannot be performed
because one or more values would have produced a duplicate key in the unique
index or constraint. Recovery . . . : Change the statement so that
duplicate keys are not produced. For information on what rows contain the
duplicate key values, look at the previously listed messages in the job log
(DSPJOBLOG command) or press F10 (Display messages in job log) on this
display.
CPF5009 Diagnostic 10 05/11/08 13:06:56.107696 QDBSIGEX QSYS 0D60 QSQRUN3 QSYS *STMT
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : SQL_Insert
Statement . . . . . . . . . : 10309
Message . . . . : Duplicate record key in member ATAB.
Cause . . . . . : The output or update operation to member number 1 record
number 644685 format ATAB, for member ATAB file ATAB in library R3PRODATA,
failed. Member number 1 record number 635948 format ATAB has the same record
key as member number 1 record number 644685 format ATAB. If the record
number is zero, the duplicate record key occurred on an output operation.
Recovery . . . : Change either record key so that the keys are unique.
Then try your request again.
CPF5034 Sender copy 30 05/11/08 13:06:56.107736 QDBSIGEX QSYS 01EA QDBSIGEX QSYS 01EA
Message . . . . : Duplicate key on access path.
Cause . . . . . : An output or update operation on record number 644685
record format FORMAT0001 member number 1 failed because of a duplicate key
in a unique keyed member that is based on member ATAB file ATAB in library
R3PRODATA, or in a based-on member of ATAB. The failure could also have been
caused by an output or update operation done to another file by a trigger
program associated with file ATAB in library R3PRODATA. Recovery . . . :
See previously listed message CPF5009 to identify the file and record with
the duplicate key and change the key value so that it is unique. Note that
the file could be a file operated on by a trigger program. Then try your
request again. Possible choices for replying to message . . . . . . . . . .
. . . . . : C -- The request is canceled. I -- The request is ignored.
CPF5034 Notify 30 05/11/08 13:06:56.107752 QDBSIGEX QSYS 01EA QSQRUN3 QSYS *STMT
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : SQL_Insert
Statement . . . . . . . . . : 10309
Message . . . . : Duplicate key on access path.
Cause . . . . . : An output or update operation on record number 644685
5722SS1 V5R4M0 060210 Display Job Log MASAPPRO 05/11/08 14:49:22 Page 57
Job name . . . . . . . . . . : WP02 User . . . . . . : PRO00 Number . . . . . . . . . . . : 303461
Job description . . . . . . : R3_00 Library . . . . . : R3PRO400
MSGID TYPE SEV DATE TIME FROM PGM LIBRARY INST TO PGM LIBRARY INST
record format FORMAT0001 member number 1 failed because of a duplicate key
in a unique keyed member that is based on member ATAB file ATAB in library
R3PRODATA, or in a based-on member of ATAB. The failure could also have been
caused by an output or update operation done to another file by a trigger
program associated with file ATAB in library R3PRODATA. Recovery . . . :
See previously listed message CPF5009 to identify the file and record with
the duplicate key and change the key value so that it is unique. Note that
the file could be a file operated on by a trigger program. Then try your
request again. Possible choices for replying to message . . . . . . . . . .
. . . . . : C -- The request is canceled. I -- The request is ignored.
SQL0803 Diagnostic 30 05/11/08 13:06:56.107880 QSQRUN3 QSYS *STMT QSQRUN3 QSYS *STMT
From module . . . . . . . . : QSQINS
From procedure . . . . . . : CLEANUP
Statement . . . . . . . . . : 24031
To module . . . . . . . . . : QSQINS
To procedure . . . . . . . : CLEANUP
Statement . . . . . . . . . : 24031
Message . . . . : Duplicate key value specified.
Cause . . . . . : An INSERT, UPDATE or ALTER TABLE statement was issued.
Unique index or unique constraint ATAB in R3PRODATA exists over one or more
columns of table ATAB in R3PRODATA. The operation cannot be performed
because one or more values would have produced a duplicate key in the unique
index or constraint. Recovery . . . : Change the statement so that
duplicate keys are not produced. For information on what rows contain the
duplicate key values, look at the previously listed messages in the job log
(DSPJOBLOG command) or press F10 (Display messages in job log) on this
display.
SQL0204 Diagnostic 30 05/11/08 13:06:56.159320 QSQPRCED QSYS *STMT QSQPRCED QSYS *STMT
From module . . . . . . . . : QSQPRCED
From procedure . . . . . . : SENDDIAG
Statement . . . . . . . . . : 19346
To module . . . . . . . . . : QSQPRCED
To procedure . . . . . . . : QSQPRCED
Statement . . . . . . . . . : 18435
Message . . . . : T801LEI in R3PRO32060 type *SQLPKG not found.
Cause . . . . . : T801LEI in R3PRO32060 type *SQLPKG was not found. If the
member name is *ALL, the table is not partitioned. If this is an ALTER TABLE
statement and tI don't have FIOS but I do use Safari to access the discussion forums without encountering the issue you've described (knock on wood). It's always hard to diagnose and troubleshoot connection issues without actually sitting in front of the computer (even more so when the problem is intermittent). Let me ask some questions:
Is your computer connecting wirelessly?
Have you tried resetting Safari and/or emptying the cache?
Have you tried Private Browsing to note any differences?
How about going to Safari's->Preferences->Security and checking/unchecking Web Contents and/or enabling/disabling cookies?
Have you tried creating another user account on your machine and log in with that user account to access the discussion board to see if there's a difference?
Good luck,
TK -
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 -
Extracting a Photo and Printing through ABAP Report
Hi,
How to extract a picture of an employee from PA30 or PA20. After extracting the picture how to print it in ABAP report.
Waiting for help.
Thanks in Advance with Regards.
MAMThank You very much Mr. Carlos Vera Baca
That is one way of putting and printing the picture. But my main question is when the picture is displayed in <b><u>PA20</u></b> or <b><u>PA30</u></b> how to extract that picture which is diplaying in the above transactions. I think I have put the question little clear.
Thanks
Abdul Mannan -
How does one pass import parameters to a report within a method?
Hello all,
Well how does one pass import parameters to a report which is within a method ...end method.
for example :
method 123
SUBMIT reportname using selection '1000'
endmethod .
Here we need to pass values into the selection screen and run the report for those values.
The values are say 'ABC' ( tablename "DEF" and field name "HIJ" ).
I hope the question is clear, awaiting your response
Thanks and Regards,
Sandeep.Go to SE24
Parameters: Give the Parameter name, Typing method is "Type" is the domain type that u are selecting, say for e.g : Parameter is "P_CONT" , its associated type "CHAR32" etc
For Select Options: Parameter name say "S_CUST", Type"importing". For this you need to give an associated type which must be created as "TABLE TYPE " in SE11. That table type needs to have a "LINE TYPE" .
LINE TYPE is a Structure created with components "SIGN, OPTION, LOW & HIGH" for select-Options.
NOTE: for a Table type related to Customer data fields "say KUNNR", the line type created must have the Component Type and data Type corresponding to the Data Element associated with "KUNNR" ;i.e: "CHAR" etc.
See if this is clear to you or revert back in case of any Confusion. -
Combining logical and physical elements in reports.
It would be nice to be able to define in a more granular basis what I am able to include in a report.
for example.
I use the logical capabilities of the model as a more readable view of the physical, the physical always have table and column name limitations.
Also I notice that most people just want to be able to see basic informaiton. for example:
Table Name<logical>
Table Name <Physical>
Definition
Column Name (logical), Column Name Physical, data type(physical), PK Flag, FK Flag, NULL Flag, Definition.
That is it.
We can always create a more comprehensive report as the one that already exists in the product.
If I was able to get a link to the parent table that owns the FK even better.
ThanksWe can always create a more comprehensive report as the one that already exists in the product.We bet on that and this is the reason we export meta data to reporting repository - you know better your needs and can produce better report.
DMRS_MAPPINGS table holds mappings between objects in logical and relational models. You can find some diagrams in reports directory.
Philip
Maybe you are looking for
-
Is there any way to create this image in photoshop?
Is there any way to create this image in photoshop? ,Any help would be appreciated?
-
HP Laserjet 1200 - time to upgrade?
I've had this HP LaserJet 1200 for years. Works great except on PDFs and image files. It takes forever to print each page on a multiple PDF for example. I also have a low end HP Deskjet 6940 which prints immediately. I assume it's a memory issue and
-
Default frame in shopping cart
Hi All, i am working an issue which is in shopping cart screen default frame. after logon into shopping cart screen, you can see 'EXTENDED DETAILS' button. once you click 'EXTENDED DETAILS' button that will change as 'Simplify button' along with some
-
Hi, I am trying to create a slideshow that has a 'next' and 'previous' button, which lets you see the next or previous movieclip when you click one of the buttons. I have done the 'next' button but cannot do the 'previous' button, please can someone
-
Can anyone please help with "EXC_BAD_ACCESS" error on start up of MS Outlook
I use MS Office 2011 After my update on my Mac OS 10.8.4 yesterday I my Microsoft Outlook and Power Point crashes on start up and no one seem to have any idea what I can do. I have followed every recommendations on the web and cant get it going again