RRI reports
What are the Tcodes used to create RRI reports?
Thanks..
Hi,
T/code - RSBBS
If you want to check in the table, please find the table : RSBBSCUBEMAPPING
Thanks
PT
Similar Messages
-
Hi all,
can any one plz tell me, in any RRI report where can we find the receiver report name??Hi,
In transaction RSBBS, enter the name of the Sender Query and press enter. It wil show the names of the Receivers.
if receiver is a query, then its COMUID will be displayed along with the Description. IF you want to find the technical name of the query then copy the name of the receiver abject and enter it as COMPUID in table RSRREPDIR.
- Jaimin -
Hi all,
I have a list of queries and Web templates. I want to know if there are any RRI Reports built on these queries. Is there any table from which I can fetch this information??
For e.g.
I have one XYZ query.
i need to find if there any RRI report on this XYZ report and if exist then i want to know the settings.
Looking for a quick reply..
Thanks in advance.Hi,
Check in SE11 in BI with RSZ* tables.
Some useful tables for reports
RSZELTDIR Directory of the reporting component elements
RSZELTTXT Texts of reporting component elements
RSZELTXREF Directory of query element references
RSRREPDIR Directory of all reports (Query GENUNIID)
RSZCOMPDIR Directory of reporting components
RSZRANGE Selection specification for an element
RSZSELECT Selection properties of an element
RSZELTDIR Directory of the reporting component elements
RSZCOMPIC Assignment reuseable component <-> InfoCube
RSZELTPRIO Priorities with element collisions
RSZELTPROP Element properties (settings)
RSZELTATTR Attribute selection per dimension element
RSZCALC Definition of a formula element
RSZCEL Query Designer: Directory of Cells
RSZGLOBV Global Variables in Reporting
Thanks
Reddy -
Insufficient authorizat drill through(RRI.report) to specific Country
Hi All,
One of the reporting User getting Message "insufficient authorization to submitted coutry" while going to detailed report using RRI from first report. Furthere the roles are based Region,Country, Company Code hierarchy.
I have followed the below steps to find the rootcause:
1) I copied the the roles to Test account from User.
2) I checked the relavant role for Reporting User, observed all the required Detailed reports,Info areas, Infocubes, company codes, Country Hierarchy nodes are present with activity 16.
3) I tried to capture the trace, I logged with test account and mine in different sessions and replicated the steps that user has performed, but I could not produce trace results for Test account. I can only see trace logs for my account.
I am still not sure how to find the real cause for this. we have concept of workbooks, so User will be having specified workbook in his role.
Please Advice.
Thanks,
Naren.Just confirmed with Oracle this is bug 13996544 . FYI just incase it helps anyone
-
RRI (Report Report Interface) with ABAP Sender program
I need to call a Report Writer report from a bespoke ABAP program. I can call transaction START_REPORT to do this, but I wondered if the Report-Report Interface can be used here.
Has anyone ever programmed a direct call to the RRI interface in ABAP?Hi Robin
I know the answer comes late but you might find my wiki posting helpful:
https://wiki.sdn.sap.com/wiki/display/Snippets/ABAP+Report-Report-Interface
Regards,
Marc
SAP NetWeaver RIG -
Hi all,
I have 3 rows in Sender and in receiver 3 more rows which gives detailed level of information about the sender rows.
I want to design the RRI setting which will jump only from one row not from all the rows/headers.
Is it possible to design, can you please propose settings?
Ex: Billing document, from this field i have to jump to another report or VA03 transaction not from all the row characteristics.
Thanks in advance,
VenkyHi SVU,
I am able to login into R/3 when i create reciever setting in RSBBS, when i select transaction and source system r/3, it will ask for user id to login, when i run the sender report and select go to VA03, then i am getting this SAP Web Application Server screen, and asking for user name.
I tried with same user which i have in R/3, but it's giving error, few lines in log are
SSO logon not possible; logon tickets not activated on the server
The termination type was : ABORT_MESSAGE_STATE
Do you have any idea?
when we jump from sender query what is the screen to appear 1st?
Thanks,
Venky
Edited by: Venkatesh S on Jan 13, 2009 11:21 AM -
RRI (Report to Report Interface)
Hi all
i search in forum and i got a ans., but i'm not able to understand this., what is reporting to report inter face(RRI)
t-code RSBBS., when do we use., can u pls explain me this one and as wel give on scenario Can u pls give brief and
step by step scenario
KindHi krisna,
Report-To-Report Interface is used to navigate from One Report To Another Report. Say for example Your Manager wants to view Yearly report(YTD) which gives sales for Jan, Feb, Mar etc.... he aswell wants to view detailed monthly report for any month say for march..... by right clicking on YTD report he should get Monthly(MTD) report.....so this can be achived by RRI.
In RSBBS you will have to assign the Source query(in this case it is YTD report) and Target query(in this case it is MTD report). Means the user is able to view YTD and MTD at same instance. Its just like drilldown between reports. Let me know if u have any doubts?
Regards,
Vishnu. -
RRI report transfer to ERP transaction VA03 problem
Hi all,
I have following problem when I tried to jump to VA03 transaction from Query Designer report.
I created sender/receiver assignment with following options
Sender : Query Designer report
Receiver : VA03 transaction
When i click on go to VA03 it's displaying error " Java communication error: Error when opening an RFC connection" after it's displaying below error.
Is it related to EP and R/3 connnection problem or else?
Error:
SAP Web Application Server window is displaying and asking for logon details.
The URL http://ttcsap04:8001/sap/bc/gui/sap/its/webgui was not called due to an error.
Note
The following error text was processed in the system TCQ : System error
The error occurred on the application server ttcsap04_TCQ_01 and in the work process 0 .
The termination type was: ABORT_MESSAGE_STATE
The ABAP call stack was:
SYSTEM-EXIT of program SAPLRSRR_WEB
What can I do?
If the termination type was RABAX_STATE, then you can find more information on the cause of the termination in the system TCQ in transaction ST22.
If the termination type was ABORT_MESSAGE_STATE, then you can find more information on the cause of the termination on the application server ttcsap04_TCQ_01 in transaction SM21.
If the termination type was ERROR_MESSAGE_STATE, then you can search for more information in the trace file for the work process 0 in transaction ST11 on the application server ttcsap04_TCQ_01 . In some situations, you may also need to analyze the trace files of other work processes.
If you do not yet have a user ID, contact your system administrator.
Error code: ICF-IE-http -c: 500 -u: USER -l: E -s: TCQ -i: ttcsap04_TCQ_01 -w: 0 -d: 20090107 -t: 041216 -v: ABORT_MESSAGE_STATE -e: System error
HTTP 500 - Internal Server Error
Your SAP Internet Communication Framework Team
Thanks in Advance,
VenkyHi
You need to establish the connection between EP/ERP/BI-BEx.
More of a network / Basis/ EP Issue Raise a ticket with them for the help. -
Hi,
I'm working on RRI.
In target query(Target_Test query) i created three replacement variables (vendor,specification and calmonth) which will use source query(Source_Test query).
if i execute the source query and use goto to connect target to display the result
then it will display the same results all the time for diff values in source query.
What are all changes i need to do ??
can you please provide some input to this thread.
<removed>
Regards,
VarunHi Varun,
Result set query is when one query runs as a pre-query to supply a list of value to the second query. In this case you use char replacement path variables where you supply the name of the pre-query as the one to calculate the values and replace in your second, i.e. ResultSet query.
See here for details:
http://help.sap.com/saphelp_nw04/helpdata/en/2c/78a03c1178ad2ce10000000a114084/content.htm
Hope this helps... -
RSBBS settings : RRI : Report-Report Interface
We have migrated several queries to version 7 for which RRI settings were created that enable a link to transaction code in ECC (Eg, FB03).
Before migration, the link to FB03 would open an ECC session (a GUI session). However, after migrating the query, the link to FB03 opens a browser session for FB03.
Is it possible to customise the link so that the query opens an ECC session (the GUI) and not via a browser session?
Many thanks,
FrederickHi Frederick,
Please go through it:
The standard configuration of the message server used for HTTP load balancing on the target system isn't capable to handle HTTP POST parameters.
For this, the profile parameter "ms/redirect_version = 1" has to be
set on the target system. Please follow the instruction from SAP Note
972514 on how to set the parameter (e.g. via transaction RZ10).
This parameter should be displayed after you restart.
Transaction SMMS
-> Goto -> Parameters -> Display (in all servers).
Thanks & Regards,
Vipin -
Filters for RRI reports in bookmark
Hi,
i had executed the receiver report from the source report with the filter values and the receiver report is showing correct data.in the receiver report i had changed the filter values and saved receiver report as an bookmark ,but when i open this bookmark we are getting the initial filter values which we had given while executing from the source report.
we want to see the filter values which we have given in the receiver report and bookmarked the report afterwords.,
please suggest.Hi,
You can create prompt like below.
1. Go to Group column Edit formula copy the below statement.
case when 1=5 then transaction_type else 'A' end
2. Go to show option and select SQL Results paste it below statement.
SELECT case when 1=5 then Your column name else 'A' end FROM "your subject area" Union All SELECT case when 1=5 then your column name else 'B' end FROM your subject area Union All SELECT case when 1=5 then your column name else 'C' end FROM "your subject area"
3 select set variable --> Presentation variable --> give me any name.
4. Save it this prompt
5. Go to your report apply this column in as filter with presentation variable.
Output like this.
If you select A then it will give A related data,
If your select B then it will give B related data,
If you select C Then it will give C related data.
I am not sure this is what your looking so far.
Award Points it is useful.
Thanks
satya -
hi friends,
if i want use characterstics with replacement path , i need 2 queries, is there any mandatory i need to clup these queries in rsbbs or no need to clup for characterstics with replacement?
regards
sskhi peppy,
thank u very much for ur quick response.
ple check my steps , let me know any corrections
1st query (sender)
Customer quantity
c1 1000
c2 2000
c3 3000
i created variable charracter with user entry/default( customet right click variable)
2nd query (receiver)
Material Customer Sales
m1 c1 100
m2 c2 200
m3 c3 300
now i selected customer selected replacement path is processing type and gave sender query name in this variable.
now i went rsbbs joined 2 queries.
now my doubts is with variable and without variables i am getting same answer.
here how my character with replacement path is effected.
ple correct and solve.
regards
ssk -
How to identifing the parent report from child report in RRI
Hi Floks,
Long back we have created one RRI report(which is having parent child relation).Now i have child report with me,i wanted to know the corresponding parent report.Please give me some inputs to identify this.
Regards,
Satya.Check in these tables:
RSBBSQUERYDIR
RSBBSQRYMAPPING
Also check in table RSBBSQUERY to get the source and target of the RRI interface.
Pravender -
Hi every one i have a small doubt in FI report that is i have to give the following output as per the user requirement i had added all the everything in this program i had given u the entire code the only problem is if make comment for the code of city and postal code the remaining everything is working properly and if i remove comment at CITY and POSTAL CODE there is some error can u find out that and help me please
* Ist-Einzelpostenanzeige EC-PCA *
* - direkte Aufruf *
* - Report Writer *
* - Recherche *
* 45b MIC: default values for poper and ryear depfr. fiscyear variant *
* 46a MIC Warning if too few selection parameters *
* 46a MIC: use up to 'whr_size' single values in select statement *
* 46a MIC: move'Initialization of Rep-Rep-Interface' to Initialization*
* 46a MIC: check only new auth-object *
* 46c MIC: add RMVCT and get more fields from RRI *
REPORT z_rcopca02_1 NO STANDARD PAGE HEADING MESSAGE-ID km
LINE-COUNT (2) LINE-SIZE 81.
* Typen ***************************************************************
*type-pools: kkblo.
TYPE-POOLS: slis, ecarc.
* DDIC-Tabellen *******************************************************
TABLES: glpca, "Einzelposten / Ist
glu1, "Übergabestruktur FI-SL-Anzeige
t000,
tka01,
sscrfields,
lfa1,
kna1,
bseg,
with_item.
* Variablen und int. Tabellen *****************************************
DATA: afield TYPE slis_fieldcat_alv,
sp_group TYPE slis_sp_group_alv,
t_listheader TYPE slis_t_listheader WITH HEADER LINE,
t_layout TYPE slis_layout_alv,
t_fieldcat TYPE slis_t_fieldcat_alv,
t_spec_groups TYPE slis_t_sp_group_alv,
event TYPE slis_alv_event,
t_events TYPE slis_t_event,
g_variant LIKE disvariant,
gx_variant LIKE disvariant,
g_exit(1) TYPE c,
g_save(1) TYPE c,
g_repid LIKE sy-repid,
msgtyp LIKE sy-msgty,
lt_dynpread LIKE dynpread OCCURS 1 WITH HEADER LINE,
ls_rpcak LIKE rpcak, "note 0310592
packsize TYPE i VALUE 1000,
text1(60) TYPE c,
text2(60) TYPE c,
oldkokrs LIKE glpca-kokrs,
oldracct LIKE glpca-racct.
DATA: whr_size TYPE i VALUE 50,"Maximum of single values per MIC 46a
"charact. in the where-clause of the select-statement
lines TYPE i, "number of lines of range table MIC 46a
cnt_rldnr TYPE i, "Zähler Anzahl selektierter Ledger
cnt_kokrs TYPE i, "Zähler Anzahl selektierter KoReKreise
cnt_poper TYPE i, "Zähler Anzahl selektierter Perioden
cnt_ryear TYPE i, "Zähler Anzahl selektierter GeschJahre
cnt_rvers TYPE i, "Zähler Anzahl selektierter Versionen
cnt_bukrs TYPE i, "Zähler Anzahl selektierter BuKreise
empge LIKE dkobr-empge,
ksl_curr LIKE tka01-pcacur,
hsl_curr LIKE t001-waers,
a_rec LIKE rstirec.
DATA: BEGIN OF dim_data.
INCLUDE STRUCTURE rgcdi. "data for dimensions
DATA: END OF dim_data.
DATA: BEGIN OF tab_fields OCCURS 80,
name LIKE dntab-fieldname, "fields in table i_glpca
END OF tab_fields.
DATA: BEGIN OF i_glpca OCCURS 0.
INCLUDE STRUCTURE rpca2.
DATA: racct_ktext LIKE rpcak-ktext,
psppp LIKE prps-posid,
name1 LIKE lfa1-name1,
adrnr like lfa1-adrnr,
stras like lfa1-stras,
c_name1 like kna1-name1,
v_rate like with_item-qsatz,
qsshb like bseg-qsshb,
qbshb like bseg-qbshb,
END OF i_glpca.
DATA: rw_subrc LIKE sy-subrc, "Flag: Report-Writer-Schnittstelle
re_subrc LIKE sy-subrc, "Flag: Recherche-Schnittstelle
subrc LIKE sy-subrc.
DATA: set_id LIKE sethier-setid, "Set-ID "RDI_SETS_4.0
set_class LIKE sethier-setclass, "Setklasse "RDI_SETS_4.0
set_sname LIKE sethier-shortname."Setname (24) "RDI_SETS_4.0
DATA: authorised(1),
s_message(1),
auth_dbcount LIKE sy-tabix,
* Hex-Konstanten für Minimum/Maximum-Werte
BEGIN OF hex00,
x1(12) TYPE c,
x2(12) TYPE c,
END OF hex00,
BEGIN OF hexff,
x1(12) TYPE c,
x2(12) TYPE c,
END OF hexff.
RANGES rclnt FOR glpca-rclnt.
FIELD-SYMBOLS: <glpca> LIKE LINE OF i_glpca,
<glpca_arc> TYPE ecarc_glpca_curr.
* Selektionsoptionen *************************************************
SELECT-OPTIONS:
rldnr FOR glpca-rldnr DEFAULT '8A' NO-DISPLAY,
rassc FOR glpca-rassc NO-DISPLAY,
* rrcty for glpca-rrcty default 0,
rrcty FOR glpca-rrcty,
rvers FOR glpca-rvers DEFAULT '000',
kokrs FOR glpca-kokrs MEMORY ID cac,
bukrs FOR glpca-rbukrs MEMORY ID buk,
* poper for glpca-poper default sy-datlo+4(2),
* ryear for glpca-ryear default sy-datlo,
poper FOR glpca-poper,
ryear FOR glpca-ryear,
prctr FOR glpca-rprctr MATCHCODE OBJECT prct,
pprctr FOR glpca-sprctr MATCHCODE OBJECT prct,
* RACCT FOR GLPCA-RACCT MATCHCODE OBJECT KART, "RD_P30K128304
racct FOR glpca-racct, "RD_P30K128304
drcrk FOR glpca-drcrk,
activ FOR glpca-activ,
rhoart FOR glpca-rhoart,
rfarea FOR glpca-rfarea,
stagr FOR glpca-stagr,
rtcur FOR glpca-rtcur,
runit FOR glpca-runit,
versa FOR glpca-versa NO-DISPLAY,
eprctr FOR glpca-eprctr NO-DISPLAY,
afabe FOR glpca-afabe NO-DISPLAY,
rmvct FOR glpca-rmvct NO-DISPLAY,
hrkft FOR glpca-hrkft NO-DISPLAY, "note 550972
sbukrs FOR glpca-sbukrs NO-DISPLAY, "note 550972
shoart FOR glpca-shoart NO-DISPLAY, "note 550972
sfarea FOR glpca-sfarea NO-DISPLAY, "note 550972
docct FOR glpca-docct,
docnr FOR glpca-docnr,
refdocct FOR glpca-refdocct,
refdocnr FOR glpca-refdocnr,
werks FOR glpca-werks,
repmatnr FOR glpca-rep_matnr MATCHCODE OBJECT pca_shlp_rep_matnr,
rscope FOR glpca-rscope.
PARAMETERS: no_rrint NO-DISPLAY DEFAULT ' '." skip "MICP40K066037
" report-report-interface
* display variant ">>MICP40K039857
SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE text-e01.
PARAMETERS: p_vari LIKE disvariant-variant.
SELECTION-SCREEN COMMENT 47(40) varname FOR FIELD p_vari.
SELECTION-SCREEN END OF BLOCK 0.
PARAMETERS log_grp(4) TYPE c NO-DISPLAY DEFAULT 'zKE5Z'.
"<<MICP40K039857
RANGES: v_racct FOR glpca-racct,
v_prctr FOR glpca-rprctr,
v_pprctr FOR glpca-sprctr.
* Tabelle mit Werten aus den Berichts-Set vom Report-Writer *
DATA BEGIN OF val_tab OCCURS 50.
INCLUDE STRUCTURE rgciv.
DATA END OF val_tab.
*************************************************** MICP30K166368
* feldkatalog und interface für bb-schnittstelle rw MICP30K166368
*************************************************** MICP30K166368
"MICP30K166368
DATA BEGIN OF bbs_fieldtab OCCURS 20. "MICP30K166368
INCLUDE STRUCTURE rstifields. "MICP30K166368
DATA END OF bbs_fieldtab. "MICP30K166368
* archiv
TYPE-POOLS: rsds.
TYPES: BEGIN OF ty_archive_objects,
object LIKE arch_obj-object,
END OF ty_archive_objects,
ty_t_archive_objects TYPE ty_archive_objects OCCURS 2.
CONSTANTS: lc_set TYPE c VALUE 'X',
lc_report TYPE progname VALUE 'ZKE5Z',
lc_reporttype TYPE reporttype VALUE 'TR'.
TABLES: admi_files.
SELECT-OPTIONS lr_files FOR admi_files-archiv_key NO-DISPLAY.
PARAMETER: read_db TYPE c DEFAULT 'X' NO-DISPLAY,
read_ar TYPE c NO-DISPLAY,
arc_obj LIKE arch_obj-object NO-DISPLAY,
read_as TYPE c DEFAULT 'X' NO-DISPLAY.
DATA : lt_arch_obj TYPE ty_t_archive_objects WITH HEADER LINE,
ls_selections TYPE rsds_frange,
lt_selections TYPE rsds_frange_t,
ls_selopt TYPE rsdsselopt,
lt_glpca_archiv TYPE ecarc_t_glpca_curr.
*********************************************************>>MICP40K039857
* INITIALIZATION
INITIALIZATION.
* Diverse Initialisierungen
PERFORM init_vars.
g_repid = sy-repid.
* Set default values for record type
rrcty-sign = 'I'.
rrcty-option = 'EQ'.
rrcty-low = '0'.
APPEND rrcty.
rrcty-low = '2'.
APPEND rrcty.
* Set default values for period and year (if kokrs or bukrs is known)
GET PARAMETER ID 'BUK' FIELD bukrs-low.
GET PARAMETER ID 'CAC' FIELD kokrs-low.
IF kokrs-low IS INITIAL "get contr. area from company code
AND NOT bukrs-low IS INITIAL.
CALL FUNCTION 'KOKRS_GET_FROM_BUKRS'
EXPORTING
i_bukrs = bukrs-low
IMPORTING
e_kokrs = kokrs-low
EXCEPTIONS
no_kokrs_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
CLEAR kokrs-low.
ENDIF.
ENDIF.
IF NOT kokrs-low IS INITIAL.
CALL FUNCTION 'K_KOKRS_READ' "get fiscal year variant
EXPORTING
kokrs = kokrs-low
IMPORTING
e_tka01 = tka01
EXCEPTIONS
not_found = 1
not_found_gjahr = 2
OTHERS = 3.
IF sy-subrc = 0.
CALL FUNCTION 'G_PERIOD_GET'
EXPORTING
date = sy-datlo
variant = tka01-lmona
IMPORTING
period = poper-low
year = ryear-low
EXCEPTIONS
ledger_not_assigned_to_company = 1
period_not_defined = 2
variant_not_defined = 3
OTHERS = 4.
IF sy-subrc = 0.
poper-sign = 'I'.
poper-option = 'EQ'.
APPEND poper.
ryear-sign = 'I'.
ryear-option = 'EQ'.
APPEND ryear.
ENDIF.
ENDIF.
ENDIF.
* Settings for display variants
g_save = 'A'. "Schalter Varianten benutz./allg. speichern
CLEAR g_variant.
g_variant-report = g_repid.
g_variant-log_group = log_grp.
g_variant-username = sy-uname.
* Get default variant
gx_variant = g_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
p_vari = gx_variant-variant.
ENDIF.
* Set variant
IF p_vari IS INITIAL.
p_vari = '1SAP'.
MOVE p_vari TO gx_variant-variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant
EXCEPTIONS
not_found = 1.
IF sy-subrc NE 0.
CLEAR p_vari.
CLEAR gx_variant-variant.
ENDIF.
ENDIF.
varname = gx_variant-text.
"<<MICP40K039857
* archiv
CALL FUNCTION 'KARL_DATA_INPUT_INIT'
EXPORTING
i_report = lc_report
i_reporttype = lc_reporttype
IMPORTING
e_xusedb = read_db
e_xusear = read_ar
e_archobj = arc_obj
e_infosys = read_as
TABLES
t_arch_sel = lr_files.
DATA: lt_excluding LIKE sy-ucomm OCCURS 0 WITH HEADER LINE.
CALL FUNCTION 'RS_SET_SELSCREEN_STATUS'
EXPORTING
p_status = 'SELSCREEN'
p_program = 'RCOPCA02'
TABLES
p_exclude = lt_excluding.
* Initialisieren der Bericht/Bericht-Schnittstellen *
DATA: ld_no_rrint TYPE boole_d. "note 490484 begin
IMPORT rri = ld_no_rrint FROM MEMORY ID 'RCOPCA02_NO_RRI'.
IF ld_no_rrint = 'X'.
FREE MEMORY ID 'RCOPCA02_NO_RRI'.
ELSE. "note 490484 end
CALL FUNCTION 'G_REPORT_INTERFACE_INIT' "Report-Writer?
EXPORTING "MICP30K166368
table = 'GLPCT' "MICP30K166368
IMPORTING
subrc = rw_subrc "MICP30K166368
TABLES "MICP30K166368
it_fieldr = bbs_fieldtab. "MICP30K166368
CALL FUNCTION 'RSTI_APPL_STACK_POP'"oder Recherche?
IMPORTING
i_rec = a_rec
EXCEPTIONS
appl_stack_not_initialized = 1.
re_subrc = sy-subrc.
IF re_subrc = 0.
* check Receiver is this report
IF NOT ( ( a_rec-rtool = 'RT' AND a_rec-ronam = 'Z_RCOPCA02_1' )
OR ( a_rec-rtool = 'TR' AND a_rec-ronam = 'ZKE5Z' ) ) .
re_subrc = 2.
ENDIF.
ENDIF.
ENDIF.
* AT SELCTION-SCREEN on value request**********************************
*at selection-screen on value-request for racct-low. "RD "4.6a
* "RD "4.6a
* call function 'K_RACCT_VALUE_REQUEST' "RD "4.6a
* importing "RD "4.6a
* e_racct = racct-low. "RD "4.6a
* "RD "4.6a
* "RD "4.6a
*at selection-screen on value-request for racct-high. "RD "4.6a
* "RD "4.6a
* call function 'K_RACCT_VALUE_REQUEST' "RD "4.6a
* importing "RD "4.6a
* e_racct = racct-high. "RD "4.6a
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari. "MICP40K039857
PERFORM f4_for_variant. "MICP40K039857
AT SELECTION-SCREEN ON VALUE-REQUEST FOR poper-low. "RD "4.6a
* begin of insertion note 522715
CALL FUNCTION 'K_KOKRS_READ'
EXPORTING
kokrs = kokrs-low
EXCEPTIONS
not_found = 1
not_found_gjahr = 2
OTHERS = 3.
IF sy-subrc = 0.
* end of insertion note 522715
CALL FUNCTION 'ECPCA_RPMAX_VALUE_REQUEST' "RD "4.6a
EXPORTING "RD "4.6a
i_kokrs = kokrs-low "RD "4.6a
i_ryear = ryear-low "RD "4.6a
IMPORTING "RD "4.6a
e_rpmax = poper-low "RD "4.6a
* begin of insertion note 522715
EXCEPTIONS
table_empty = 1.
ENDIF.
* end of insertion note 522715
AT SELECTION-SCREEN ON VALUE-REQUEST FOR poper-high. "RD "4.6a
* begin of insertion note 522715
CALL FUNCTION 'K_KOKRS_READ'
EXPORTING
kokrs = kokrs-low
EXCEPTIONS
not_found = 1
not_found_gjahr = 2
OTHERS = 3.
IF sy-subrc = 0.
* end of insertion note 522715
CALL FUNCTION 'ECPCA_RPMAX_VALUE_REQUEST' "RD "4.6a
EXPORTING "RD "4.6a
i_kokrs = kokrs-low "RD "4.6a
i_ryear = ryear-low "RD "4.6a
IMPORTING "RD "4.6a
e_rpmax = poper-high "RD "4.6a
* begin of insertion note 522715
EXCEPTIONS
table_empty = 1.
ENDIF.
* end of insertion note 522715
* AT SELCTION-SCREEN ***************************************************
AT SELECTION-SCREEN.
PERFORM pai_of_selection_screen.
* begin of insertion note 522715
IF NOT kokrs-low IS INITIAL.
CALL FUNCTION 'K_KOKRS_READ'
EXPORTING
kokrs = kokrs-low
EXCEPTIONS
not_found = 1
not_found_gjahr = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE e101(ki) WITH kokrs-low.
ENDIF.
ENDIF.
* end of insertion note 522715
* archiv
IF sy-ucomm = 'FC01' OR sy-ucomm = 'UCDS'
OR sy-ucomm = 'ONLI' AND read_ar = 'X'
AND read_as IS INITIAL AND lr_files[] IS INITIAL.
IF lt_arch_obj[] IS INITIAL.
lt_arch_obj-object = 'PCA_OBJECT'. APPEND lt_arch_obj.
lt_arch_obj-object = 'EC_PCA_ITM'. APPEND lt_arch_obj.
ENDIF.
CALL FUNCTION 'KARL_DATA_INPUT_SELECT'
EXPORTING
i_db_and_arc = lc_set
i_infosys_possible = lc_set
i_object_fixed = 'V'
i_documentation = 'KARL_DATA_INPUT_SEL_KE5YZ'
i_report = lc_report
i_reporttype = lc_reporttype
TABLES
t_objects = lt_arch_obj
t_arch_sel = lr_files
CHANGING
c_xusedb = read_db
c_xusear = read_ar
c_archobj = arc_obj
c_infosys = read_as.
ENDIF.
* START-OF-SELECTION **************************************************
START-OF-SELECTION.
* Default-Werte löschen, falls Aufruf über Recherche
* oder Report-Writer erfolgt ist
IF no_rrint IS INITIAL AND ld_no_rrint IS INITIAL. "note 490484
IF rw_subrc EQ 0 OR re_subrc EQ 0.
REFRESH: rldnr, rrcty, rvers, kokrs, bukrs, poper, ryear,
racct, prctr, pprctr, drcrk, activ, rhoart, rfarea,
versa, afabe, eprctr,
v_racct, v_prctr, v_pprctr.
CLEAR: rldnr, rrcty, rvers, kokrs, bukrs, poper, ryear,
racct, prctr, pprctr, drcrk, activ, rhoart, rfarea,
versa, afabe, eprctr,
v_racct, v_prctr, v_pprctr.
IF NOT read_as IS INITIAL. "note 625581
CLEAR: lr_files, lr_files[]. "note 625581
ENDIF. "note 625581
ENDIF.
* Parameter einlesen über Report-Writer-Schnittstelle *
IF rw_subrc EQ 0.
PERFORM rw_get_parameters.
* oder Parameter einlesen über Recherche-Schnittstelle *
ELSEIF re_subrc EQ 0.
PERFORM re_get_parameters.
ENDIF.
ENDIF.
IF read_db = 'X'. " read from DB (archiv)
* Bewegungsdaten einlesen und puffern...................................
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = 'Einzelposten selektieren'(p10).
* Use dirty trick to mislead DB-optimizer
CALL FUNCTION 'DB_DO_NOT_USE_CLIENT_INDEX'
EXPORTING
value = sy-mandt
TABLES
mandttab = rclnt.
SELECT (tab_fields) FROM glpca
CLIENT SPECIFIED
PACKAGE SIZE packsize
APPENDING CORRESPONDING FIELDS OF TABLE i_glpca
WHERE rldnr IN rldnr
AND rrcty IN rrcty
AND rvers IN rvers
AND kokrs IN kokrs
AND rbukrs IN bukrs
AND ryear IN ryear
AND rassc IN rassc
AND hrkft IN hrkft "note 550972
AND sbukrs IN sbukrs "note 550972
AND shoart IN shoart "note 550972
AND sfarea IN sfarea "note 550972
AND racct IN racct
AND rprctr IN prctr
AND sprctr IN pprctr
AND poper IN poper
AND drcrk IN drcrk
AND activ IN activ
AND rhoart IN rhoart
AND rfarea IN rfarea
AND versa IN versa
AND eprctr IN eprctr
AND afabe IN afabe
AND rmvct IN rmvct
AND docct IN docct
AND docnr IN docnr
AND stagr IN stagr
AND rtcur IN rtcur
AND runit IN runit
AND refdocct IN refdocct
AND refdocnr IN refdocnr
AND werks IN werks
AND rep_matnr IN repmatnr "RDIP40K020663
AND rscope IN rscope "RDIP40K020663
AND rclnt IN rclnt. "dirty trick to mislead DB-optimizer
IF sy-dbcnt > 1.
text1 = sy-dbcnt.
CONDENSE text1.
CONCATENATE text1 text-m01 INTO text2 SEPARATED BY space.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = text2. " ... Datensätze gelesen
ENDIF.
ENDSELECT.
* Entfernt nicht zugehörige Einträge....................................
LOOP AT i_glpca WHERE ( NOT rprctr IN v_prctr )
or ( not SPRCTR in v_pprctr )
OR ( NOT racct IN v_racct ).
DELETE i_glpca.
ENDLOOP.
ENDIF.
*archiv
IF read_ar = 'X' AND NOT
( read_as IS INITIAL AND lr_files[] IS INITIAL ).
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = 'Lesen im Archiv'(p12).
DEFINE fill_lt_selections.
if not &2[] is initial.
clear ls_selections.
move &1 to ls_selections-fieldname.
loop at &2.
clear ls_selopt.
move-corresponding &2 to ls_selopt.
append ls_selopt to ls_selections-selopt_t.
endloop.
append ls_selections to lt_selections.
endif.
END-OF-DEFINITION.
fill_lt_selections 'RLDNR' rldnr.
fill_lt_selections 'RRCTY' rrcty.
fill_lt_selections 'RVERS' rvers.
fill_lt_selections 'KOKRS' kokrs.
fill_lt_selections 'RBUKRS' bukrs.
fill_lt_selections 'POPER' poper.
fill_lt_selections 'RYEAR' ryear.
fill_lt_selections 'RPRCTR' prctr.
fill_lt_selections 'SPRCTR' pprctr.
fill_lt_selections 'RACCT' racct.
fill_lt_selections 'DRCRK' drcrk.
fill_lt_selections 'ACTIV' activ.
fill_lt_selections 'RHOART' rhoart.
fill_lt_selections 'RFAREA' rfarea. "note 401961
fill_lt_selections 'STAGR' stagr.
fill_lt_selections 'RTCUR' rtcur.
fill_lt_selections 'RUNIT' runit.
fill_lt_selections 'VERSA' versa.
fill_lt_selections 'EPRCTR' eprctr.
fill_lt_selections 'AFABE' afabe.
fill_lt_selections 'RMVCT' rmvct.
fill_lt_selections 'DOCCT' docct.
fill_lt_selections 'DOCNR' docnr.
fill_lt_selections 'REFDOCCT' refdocct.
fill_lt_selections 'REFDOCNR' refdocnr.
fill_lt_selections 'WERKS' werks.
fill_lt_selections 'REP_MATNR' repmatnr.
fill_lt_selections 'RSCOPE' rscope.
fill_lt_selections 'HRKFT' hrkft. "note 550972
fill_lt_selections 'SBUKRS' sbukrs. "note 550972
fill_lt_selections 'SHOART' shoart. "note 550972
fill_lt_selections 'SFAREA' sfarea. "note 550972
CALL FUNCTION 'EC_PCA_SELECT_FROM_ARCHIVE'
EXPORTING
i_selections = lt_selections[]
i_files_sequential_read = lr_files[]
IMPORTING
e_glpca = lt_glpca_archiv[]
EXCEPTIONS
no_infostruc_found = 1.
IF sy-subrc = 1.
MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CLEAR i_glpca.
LOOP AT lt_glpca_archiv ASSIGNING <glpca_arc>
WHERE ( rprctr IN v_prctr )
and ( sprctr IN v_pprctr )
AND ( racct IN v_racct ).
MOVE-CORRESPONDING <glpca_arc> TO i_glpca.
APPEND i_glpca.
ENDLOOP.
* delete duplicate records note 639647
IF NOT read_db IS INITIAL AND NOT lt_glpca_archiv[] IS INITIAL.
SORT i_glpca.
DELETE ADJACENT DUPLICATES FROM i_glpca.
ENDIF.
ENDIF.
IF i_glpca[] IS INITIAL. "Info,nichts gefunden
MESSAGE s000.
EXIT.
ENDIF.
* get texts for accounts ...............................................
SORT i_glpca BY kokrs racct.
LOOP AT i_glpca ASSIGNING <glpca>.
IF <glpca>-kokrs <> oldkokrs OR <glpca>-racct <> oldracct. "AT NEW
CLEAR ls_rpcak.
oldkokrs = <glpca>-kokrs.
oldracct = <glpca>-racct.
CALL FUNCTION 'K_RACCT_SINGLE_CHECK' "note 0310592
EXPORTING
i_kokrs = <glpca>-kokrs
i_racct = <glpca>-racct
i_spras = sy-langu
i_textflag = 'X'
IMPORTING
e_rpcak = ls_rpcak
EXCEPTIONS
not_valid = 1
OTHERS = 2.
IF sy-subrc NE 0.
CLEAR ls_rpcak.
ENDIF.
ENDIF. "ENDAT
<glpca>-racct_ktext = ls_rpcak-ktext.
* Fetching vendor name from vendor number
*break-point.
SELECT SINGLE * FROM LFA1
WHERE LIFNR = <glpca>-LIFNR AND
SPRAS = SY-LANGU.
IF SY-SUBRC eq 0.
<glpca>-name1 = lfa1-name1.
<glpca>-adrnr = lfa1-adrnr.
<glpca>-stras = lfa1-stras.
ENDIF.
* Fetching customer name from customer number
SELECT SINGLE * FROM kna1
WHERE KUNNR = <glpca>-KUNNR.
IF SY-SUBRC eq 0.
<glpca>-c_name1 = kna1-name1.
ENDIF.
SELECT SINGLE * FROM bseg
WHERE BUKRS EQ <glpca>-rbukrs AND
BELNR EQ <glpca>-refdocnr AND
GJAHR EQ <glpca>-ryear AND
KTOSL EQ 'WIT' AND
BUZEI EQ <glpca>-refdocln.
IF SY-SUBRC eq 0.
SELECT SINGLE * FROM WITH_ITEM
WHERE BUKRS EQ <glpca>-rbukrs AND
BELNR EQ <glpca>-refdocnr AND
GJAHR EQ <glpca>-ryear." AND
* BUZEI EQ <glpca>-refdocln AND
* WITHT EQ BSEG-QSSKZ.
IF SY-SUBRC eq 0.
<glpca>-v_rate = with_item-qsatz.
<glpca>-qsshb = with_item-WT_QSSHB.
<glpca>-qbshb = with_item-WT_QBSHB.
ENDIF.
ENDIF
ENDLOOP.
* Liste mit Einzelposten geeignet sortieren.............................
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = 'Einzelposten sortieren'(p30).
* if show_ref is initial.
* sort i_glpca by rldnr ryear rbukrs rrcty rvers
* docct docnr docln.
* else.
SORT i_glpca BY rldnr kokrs ryear rbukrs rrcty rvers poper
refdocct refdocnr refdocln.
* endif.
* Berechtigungsprüfung und gemerkte Belege aufbereiten .................
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = 'Berechtigungsprüfungen'(p40).
CLEAR: cnt_rldnr, cnt_kokrs, cnt_ryear, cnt_rvers, cnt_bukrs.
LOOP AT i_glpca ASSIGNING <glpca>.
* Berechtigungscheck
PERFORM check_repo_authority CHANGING authorised.
IF authorised IS INITIAL.
DELETE i_glpca.
s_message = 'X'.
* zählen der Sätze ohne Berechtigung
auth_dbcount = auth_dbcount + 1.
ELSE. "Weitere Bearbeitung nur für berechtigte Belege...
* Zusätzlich merken der Anzahl der Ausprägungen
* bestimmter Dimensionen
ON CHANGE OF <glpca>-rldnr.
ADD 1 TO cnt_rldnr.
ENDON.
ON CHANGE OF <glpca>-kokrs.
ADD 1 TO cnt_kokrs.
CALL FUNCTION 'G_CURRENCY_FROM_CT_GET'
EXPORTING
ct = '90'
kokrs = <glpca>-kokrs
rldnr = <glpca>-rldnr
IMPORTING
currency = ksl_curr.
ENDON.
ON CHANGE OF <glpca>-poper.
ADD 1 TO cnt_poper.
ENDON.
ON CHANGE OF <glpca>-ryear.
ADD 1 TO cnt_ryear.
ENDON.
ON CHANGE OF <glpca>-rvers.
ADD 1 TO cnt_rvers.
ENDON.
ON CHANGE OF <glpca>-rbukrs.
ADD 1 TO cnt_bukrs.
CALL FUNCTION 'G_CURRENCY_FROM_CT_GET'
EXPORTING
bukrs = <glpca>-rbukrs
ct = '10'
IMPORTING
currency = hsl_curr.
ENDON.
* externe Immobilienbezeichnung "ww/kb
* on change of i_glpca-imkey.
IF ( NOT <glpca>-imkey IS INITIAL ).
CALL FUNCTION 'REMD_IMKEY_TO_EMPGE'
EXPORTING
i_imkey = <glpca>-imkey
i_dabrz = <glpca>-dabrz
* I_length = 20
IMPORTING
e_empge = <glpca>-empge
e_konty = <glpca>-konty
EXCEPTIONS
not_found = 1.
IF sy-subrc NE 0.
CLEAR <glpca>-empge.
CLEAR <glpca>-konty.
ENDIF.
* CONCATENATE I_GLPCA-KONTY I_GLPCA-EMPGE INTO I_GLPCA-IMBEZ.
ENDIF.
* endon.
* on change of i_glpca-dabrz.
* call function 'REMD_IMKEY_TO_EMPGE'
* exporting
* i_imkey = i_glpca-imkey
* i_dabrz = i_glpca-dabrz
** i_length = 20
* importing
* e_empge = i_glpca-empge
* e_konty = i_glpca-konty.
** CONCATENATE I_GLPCA-KONTY I_GLPCA-EMPGE INTO I_GLPCA-IMBEZ.
* endon.
* Konvertierungsproblem mit PSP-Nummer bereinigen
IF NOT <glpca>-ps_psp_pnr IS INITIAL.
IF <glpca>-ps_psp_pnr EQ space.
CLEAR <glpca>-ps_psp_pnr.
ELSE.
WRITE <glpca>-ps_psp_pnr TO <glpca>-psppp.
CALL FUNCTION 'CONVERSION_EXIT_ABPSN_INPUT'
EXPORTING
input = <glpca>-psppp
IMPORTING
output = <glpca>-psppp.
ENDIF.
ENDIF.
* Währungen in Hilfsfeldern speichern
IF <glpca>-hsl_curr IS INITIAL.
<glpca>-hsl_curr = hsl_curr.
ENDIF.
IF <glpca>-ksl_curr IS INITIAL.
<glpca>-ksl_curr = ksl_curr.
ENDIF.
* modify i_glpca.
ENDIF.
ENDLOOP.
* Nachricht, wenn nicht alle Einzelposten angezeigt werden.
IF NOT s_message IS INITIAL.
MESSAGE s407(km) WITH auth_dbcount.
ENDIF.
* EP ausgeben...........................................................
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = 'Einzelposten ausgeben'(p50).
t_layout-detail_initial_lines = 'X'.
t_layout-detail_popup = 'X'.
t_layout-f2code = 'PIC1'. "MICP40K039857
t_layout-get_selinfos = 'X'.
t_layout-group_change_edit = 'X'. "note 576149
PERFORM fill_listheader.
PERFORM fieldcat_fill.
PERFORM spec_groups_fill.
PERFORM events_fill. "MICP40K039857
">>MICP40K039857
* call function 'K_KKB_LIST_DISPLAY'
* exporting
* i_callback_program = 'Z_RCOPCA02_1
* i_callback_user_command = 'USR_CMD'
* i_callback_top_of_page = 'TOP_OF_PAGE'
** I_CALLBACK_END_OF_PAGE =
** I_CALLBACK_END_OF_LIST =
* i_callback_pf_status_set = 'SET_PF_STATUS'
** I_CALLBACK_LAYOUT_SAVE =
** I_CALLBACK_FIELDCAT_SAVE =
* i_tabname = 'I_GLPCA'
* is_layout = t_layout
* it_fieldcat = t_fieldcat
** I_FCTYPE = 'R'
** IT_EXCLUDING =
* it_special_groups = t_spec_groups
** IT_SORT =
** IS_SEL_HIDE =
** I_SCREEN_START_COLUMN = 0
** I_SCREEN_START_LINE = 0
** I_SCREEN_END_COLUMN = 0
** I_SCREEN_END_LINE = 0
* tables
* t_outtab = i_glpca
* exceptions
* others = 1.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
* CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
i_callback_program = 'Z_RCOPCA02_1'
i_callback_pf_status_set = 'SET_PF_STATUS'
i_callback_user_command = 'USR_CMD'
i_structure_name = 'I_GLPCA'
is_layout = t_layout
it_fieldcat = t_fieldcat
* IT_EXCLUDING =
it_special_groups = t_spec_groups
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
i_default = 'X'
i_save = g_save
is_variant = g_variant
it_events = t_events
* IT_EVENT_EXIT =
* IS_PRINT =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = i_glpca
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
"<<MICP40K039857
CLEAR i_glpca.
*& Form CHECK_REPO_AUTHORITY
* Check only new auth-object K_PCA *
* --> p1 text
* <-- p2 text
FORM check_repo_authority CHANGING authorized LIKE authorised.
* fill structure for userexit in K_PCA_RESP_AUTHORITY_CHECK
DATA: auth LIKE pca_i_auth. "46a MIC check K_PCA and G_GLTP
auth-bukrs = <glpca>-rbukrs.
auth-rldnr = <glpca>-rldnr.
auth-rvers = <glpca>-rvers.
auth-rrcty = <glpca>-rrcty.
CLEAR authorized.
* check PrCtr/account/activity
CALL FUNCTION 'K_PCA_RESP_AUTHORITY_CHECK'
EXPORTING
i_kokrs = <glpca>-kokrs
i_prctr = <glpca>-rprctr
i_kstar = <glpca>-racct
i_vorgn = 'REPP'
i_actvt = '28'
i_auth = auth
i_no_dialog_message = 'X'
EXCEPTIONS
no_authority = 1
data_missing = 2
OTHERS = 3.
IF sy-subrc = 0. "ok
* check ledger/version/record type
CALL FUNCTION 'PCA_G_GLTP_AUTH_CHECK'
EXPORTING
rldnr = <glpca>-rldnr
rvers = <glpca>-rvers
rrcty = <glpca>-rrcty
EXCEPTIONS
no_authorisation = 1
OTHERS = 2.
IF sy-subrc = 0. "ok, User is authorized
authorized = 'X'.
ENDIF.
ENDIF.
ENDFORM. " CHECK_REPO_AUTHORITY
*& Form INIT_VARS
* Initialisieren diverser Hilfsvariablen und -tabellen *
FORM init_vars.
DATA BEGIN OF nametab OCCURS 80. "Tabelle mit Feldern aus der RPCA2
INCLUDE STRUCTURE dntab.
DATA END OF nametab.
SELECT SINGLE * FROM t000
CLIENT SPECIFIED
WHERE mandt = sy-mandt.
REFRESH nametab.
CALL FUNCTION 'NAMETAB_GET'
EXPORTING
only = 'T'
tabname = 'RPCA2'
TABLES
nametab = nametab.
* Übernehmen der Feldnamen, die auch in der GLPCA
* vorkommen.
LOOP AT nametab WHERE fieldname NE 'KSL_CURR'
AND fieldname NE 'HSL_CURR'
AND fieldname NE 'EMPGE' "ww/kb
AND fieldname NE 'KONTY'. "ww/kb
MOVE nametab-fieldname TO tab_fields-name.
APPEND tab_fields.
ENDLOOP.
* fill Fields of receiver for BBS "MIC46C
CALL FUNCTION 'RSTI_REPORT_FIELDS_FIND'
EXPORTING
e_repid = 'Z_RCOPCA02_1'
e_type = 'R'
TABLES
it_fields = bbs_fieldtab.
* correct fieldnames
READ TABLE bbs_fieldtab WITH KEY rfield = 'PRCTR'.
IF sy-subrc = 0.
bbs_fieldtab-rfield = 'RPRCTR'.
MODIFY bbs_fieldtab INDEX sy-tabix.
ENDIF.
READ TABLE bbs_fieldtab WITH KEY rfield = 'PPRCTR'.
IF sy-subrc = 0.
bbs_fieldtab-rfield = 'SPRCTR'.
MODIFY bbs_fieldtab INDEX sy-tabix.
ENDIF.
READ TABLE bbs_fieldtab WITH KEY rfield = 'BUKRS'.
IF sy-subrc = 0.
bbs_fieldtab-rfield = 'RBUKRS'.
MODIFY bbs_fieldtab INDEX sy-tabix.
ENDIF.
* Unicode
CLASS cl_abap_char_utilities DEFINITION LOAD.
CLEAR hex00 WITH cl_abap_char_utilities=>minchar.
CLEAR hexff WITH cl_abap_char_utilities=>maxchar.
ENDFORM. " INIT_VARS
* FORM FILL_LISTHEADER *
* List-Header in Abhängigkeit der selektierten Daten *
FORM fill_listheader.
READ TABLE i_glpca INDEX 1.
IF sy-subrc NE 0.
EXIT.
ENDIF.
t_listheader-typ = 'S'.
t_listheader-key = 'Ledger '(h01).
IF cnt_rldnr <= 1.
t_listheader-info = i_glpca-rldnr.
ELSE.
t_listheader-info = '*'.
ENDIF.
APPEND t_listheader.
t_listheader-typ = 'S'.
t_listheader-key = 'Kostenrechnungskreis'(h02).
IF cnt_kokrs <= 1.
t_listheader-info = i_glpca-kokrs.
ELSE.
t_listheader-info = '*'.
ENDIF.
APPEND t_listheader.
t_listheader-typ = 'S'.
t_listheader-key = 'Buchungskreis '(h03).
IF cnt_bukrs <= 1.
t_listheader-info = i_glpca-rbukrs.
ELSE.
t_listheader-info = '*'.
ENDIF.
APPEND t_listheader.
t_listheader-typ = 'S'.
t_listheader-key = 'Buchungsperiode '(h04).
IF cnt_poper <= 1.
t_listheader-info = i_glpca-poper.
ELSE.
t_listheader-info = '*'.
ENDIF.
APPEND t_listheader.
IF cnt_ryear <= 1.
t_listheader-typ = 'S'.
t_listheader-key = 'Geschäftsjahr '(h05).
t_listheader-info = i_glpca-ryear.
APPEND t_listheader.
ENDIF.
t_listheader-typ = 'S'.
t_listheader-key = 'Version '(h06).
IF cnt_rvers <= 1.
t_listheader-info = i_glpca-rvers.
ELSE.
t_listheader-info = '*'.
ENDIF.
APPEND t_listheader.
ENDFORM. "fill_listheader
*& Form FIELDCAT_FILL
*& Aufbau des Feldkataloges für den K_KKB_LIST_DISPLAY, *
*& bzw REUSE_ALV_LIST_DISPLAY, *
*& weitere Infos enthält die FktBaustein-Doku *
FORM fieldcat_fill.
DATA: i TYPE i VALUE 0.
REFRESH t_fieldcat.
* Ledger
* if cnt_rldnr > 1.
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RLDNR'.
afield-no_sum = 'X'.
afield-no_out = 'X'.
* afield-key = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-sp_group = '1'.
APPEND afield TO t_fieldcat.
* endif.
* Satzart
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RRCTY'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '1'.
APPEND afield TO t_fieldcat.
* Version
* if cnt_rvers > 1.
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RVERS'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '1'.
APPEND afield TO t_fieldcat.
* endif.
* Periode
* if cnt_poper > 1.
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'POPER'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '1'.
APPEND afield TO t_fieldcat.
* endif.
* Geschäftsjahr
* if cnt_ryear > 1.
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RYEAR'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '1'.
APPEND afield TO t_fieldcat.
* endif.
* Referenzbelegtyp
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'REFDOCCT'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-sp_group = '2'.
afield-seltext_s = 'Typ'(t01).
afield-seltext_m = 'Belegtyp'(t02).
afield-seltext_l = 'Ref.Belegtyp'(t03).
afield-outputlen = 3. "Platz für die Sterne der Zwischensummen
* if not show_ref is initial.
afield-key = 'X'.
* else.
* afield-no_out = 'X'.
* endif.
APPEND afield TO t_fieldcat.
* Referenzbelegnummer
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'REFDOCNR'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-sp_group = '2'.
afield-seltext_s = 'Refbeleg'(t04).
afield-seltext_m = 'Refbelegnr'(t05).
afield-seltext_l = 'Ref.Belegnummer'(t06).
* if not show_ref is initial.
afield-key = 'X'.
* else.
* afield-no_out = 'X'.
* endif.
APPEND afield TO t_fieldcat.
* Referenzbelegzeile
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'REFDOCLN'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-sp_group = '2'.
afield-seltext_s = 'Zeile'(t07).
afield-seltext_m = 'Belegzeile'(t08).
afield-seltext_l = 'Ref.Belegzeile'(t09).
* if not show_ref is initial.
afield-key = 'X'.
* else.
* afield-no_out = 'X'.
* endif.
APPEND afield TO t_fieldcat.
* Belegtyp PCA
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'DOCCT'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-sp_group = '1'.
afield-outputlen = 3. "Platz für die Sterne der Zwischensummen
* if show_ref is initial.
afield-key = 'X'.
* else.
afield-no_out = 'X'.
* endif.
APPEND afield TO t_fieldcat.
* Belegnummer PCA
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'DOCNR'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-sp_group = '1'.
* if show_ref is initial.
afield-key = 'X'.
* else.
afield-no_out = 'X'.
* endif.
APPEND afield TO t_fieldcat.
* Belegzeile PCA
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'DOCLN'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-sp_group = '1'.
* if show_ref is initial.
afield-key = 'X'.
* else.
afield-no_out = 'X'.
* endif.
APPEND afield TO t_fieldcat.
* Kostenrechnungskreis
* if cnt_kokrs > 1.
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'KOKRS'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-no_out = 'X'.
afield-sp_group = '7'.
APPEND afield TO t_fieldcat.
* endif.
* Buchungskreis
* if cnt_bukrs > 1.
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RBUKRS'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-no_out = 'X'.
afield-seltext_s = 'BuKrs'(b01).
afield-seltext_m = 'BuKrs'(b02).
afield-seltext_l = 'Empfänger-BuKrs'(b03).
afield-sp_group = '8'.
APPEND afield TO t_fieldcat.
* endif.
* Profit Center
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RPRCTR'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-sp_group = '7'.
APPEND afield TO t_fieldcat.
* Eliminierungs-Profit-Center
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'EPRCTR'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '7'.
APPEND afield TO t_fieldcat.
* Sender-Profit-Center
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'SPRCTR'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-sp_group = '7'.
APPEND afield TO t_fieldcat.
* Konto
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RACCT'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-sp_group = '7'.
APPEND afield TO t_fieldcat.
ADD 1 TO i.
* Kontentext
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RACCT_KTEXT'.
afield-no_sum = 'X'.
afield-ref_tabname = 'RPCAK'.
afield-ref_fieldname = 'KTEXT'.
afield-seltext_s = 'Kont-txt.'(m11).
afield-seltext_m = 'Kontentext'(m12).
afield-seltext_l = 'Kontentext'(m13).
afield-sp_group = '7'.
APPEND afield TO t_fieldcat.
ADD 1 TO i.
* Statistische Kennzahl
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'STAGR'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '12'.
APPEND afield TO t_fieldcat.
* Soll/Haben-Kennzeichen
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'DRCRK'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '1'.
APPEND afield TO t_fieldcat.
* Wert in Profit-Center-Währung
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'KSL'.
afield-do_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
* AFIELD-SELTEXT_S = 'PrCtr-Hauswhr.'(P01).
* AFIELD-SELTEXT_M = 'PrCtr-Hauswährung'(P02).
* AFIELD-SELTEXT_L = 'Profit-Center-Hauswährung'(P03).
afield-cfieldname = 'KSL_CURR'.
afield-sp_group = '3'.
APPEND afield TO t_fieldcat.
* Währungsschlüssel KSL
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'KSL_CURR'.
afield-ref_tabname = 'TKA01'.
afield-ref_fieldname = 'PCACUR'.
afield-no_sum = 'X'.
afield-no_out = 'X'.
afield-seltext_s = 'PrCtrHW'(t10).
afield-seltext_m = 'Währungsschl. PrCtrHW'(t11).
afield-seltext_l = 'Währungsschl. PrCtrHW'(t12).
afield-sp_group = '3'.
APPEND afield TO t_fieldcat.
* Betrag in Hauswährung
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'HSL'.
afield-do_sum = 'X'.
afield-no_out = 'X '.
afield-ref_tabname = 'GLPCA'.
afield-cfieldname = 'HSL_CURR'.
afield-sp_group = '4'.
APPEND afield TO t_fieldcat.
* Währungsschlüssel Hauswährung
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'HSL_CURR'.
afield-ref_tabname = 'T001'.
afield-ref_fieldname = 'WAERS'.
afield-no_sum = 'X'.
afield-no_out = 'X '.
afield-seltext_s = 'BukrW.'(t13).
afield-seltext_m = 'Währungsschl. BukrW'(t14).
afield-seltext_l = 'Währungsschl. BukrW'(t15).
afield-sp_group = '4'.
APPEND afield TO t_fieldcat.
* Betrag in Transaktionswährung
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'TSL'.
afield-no_out = 'X '.
afield-ref_tabname = 'GLPCA'.
afield-cfieldname = 'RTCUR'.
afield-sp_group = '5'.
APPEND afield TO t_fieldcat.
* Währungsschlüssel Transaktionswährung
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RTCUR'.
afield-ref_tabname = 'GLPCA'.
afield-ref_fieldname = 'RTCUR'.
afield-no_sum = 'X'.
afield-no_out = 'X '.
afield-seltext_s = 'TW '(t16).
afield-seltext_m = 'Währungsschl. TW'(t17).
afield-seltext_l = 'Währungsschl. TW'(t18).
afield-sp_group = '5'.
APPEND afield TO t_fieldcat.
* Menge
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'MSL'.
afield-qfieldname = 'RUNIT'.
afield-no_out = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-sp_group = '6'.
APPEND afield TO t_fieldcat.
* Mengeneinheit
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RUNIT'.
afield-no_sum = 'X'.
afield-no_out = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-sp_group = '6'.
APPEND afield TO t_fieldcat.
* Herkunftsobjektart
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RHOART'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '7'.
APPEND afield TO t_fieldcat.
* Funktionsbereich
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RFAREA'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '7'.
APPEND afield TO t_fieldcat.
* Objektklasse
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RSCOPE'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '1'.
APPEND afield TO t_fieldcat.
* G/L-Vorgang
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'ACTIV'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-seltext_s = 'Vorg.'(t31).
afield-seltext_m = 'Vorgang'(t32).
afield-seltext_l = 'Betriebswirt. Vorgang'(t33).
afield-sp_group = '1'.
APPEND afield TO t_fieldcat.
* Geschäftsbereich
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'GSBER'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '8'.
APPEND afield TO t_fieldcat.
* Kostenstelle
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'KOSTL'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '9'.
APPEND afield TO t_fieldcat.
* CO-Auftrag
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'AUFNR'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '9'.
APPEND afield TO t_fieldcat.
* Projekt
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'PSPPP'.
afield-no_sum = 'X'.
afield-no_out = 'X'.
afield-sp_group = '9'.
afield-ref_tabname = 'PRPS'.
afield-ref_fieldname = 'POSID'.
APPEND afield TO t_fieldcat.
* Debitor
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'KUNNR'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-seltext_s = 'Debitor'(d01).
afield-seltext_m = text-d01.
afield-seltext_l = text-d01.
afield-sp_group = '8'.
APPEND afield TO t_fieldcat.
* Customer Name
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'C_NAME1'.
afield-no_sum = 'X'.
afield-ref_tabname = 'KNA1'.
afield-no_out = 'X'.
afield-seltext_s = 'Customer Name'.
afield-seltext_m = 'Cust Name'.
afield-seltext_l = 'C Name'.
afield-sp_group = '8'.
APPEND afield TO t_fieldcat.
* Kreditor
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'LIFNR'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-seltext_s = 'Kreditor'(k01).
afield-seltext_m = text-k01.
afield-seltext_l = text-k01.
afield-sp_group = '8'.
APPEND afield TO t_fieldcat.
* Vendor name
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'NAME1'.
afield-no_sum = 'X'.
afield-ref_tabname = 'LFA1'.
afield-no_out = 'X'.
afield-seltext_s = 'Vendor Name'(v01).
afield-seltext_m = text-v01.
afield-seltext_l = text-v01.
afield-sp_group = '8'.
APPEND afield TO t_fieldcat.
* Withholding tax rate
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'V_RATE'.
afield-no_sum = 'X'.
afield-ref_tabname = 'WITH_ITEM'.
afield-no_out = 'X'.
afield-seltext_s = 'Withholding tax rate'.
afield-seltext_m = 'With. tax rate'.
afield-seltext_l = 'W. Tax rate'.
afield-sp_group = '8'.
APPEND afield TO t_fieldcat.
* Withholding Tax Base Amount
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'QSSHB'.
afield-no_sum = 'X'.
afield-ref_tabname = 'Hi pavan.
something is definitely wrong with your code: You have an internal table for display with fields from rpca 2 and additional some more fields. I do not see a field ORT01 for CITY or PSTLZ for POSTAL CODE, at least to in table GLPCA from where the data are extracted.
You must fill PSTLZ and ORT01 (if it is for the supplier):
SELECT SINGLE * FROM LFA1
WHERE LIFNR = <glpca>-LIFNR AND
SPRAS = SY-LANGU.
IF SY-SUBRC eq 0.
<glpca>-name1 = lfa1-name1.
<glpca>-adrnr = lfa1-adrnr.
<glpca>-stras = lfa1-stras.
**** add here: ***
select single ort01 pstlz
into corresponding fields of <glpca>
from adrc
where adrnr = <glpca>-adrnr.
ENDIF.
Make sure that fields ORT01 and PSTLZ are defined for internal table i_glpca.
Regards,
Clemens -
Report data restriction based on SAP ID - Authorization in BI 7.0
Hi Friends,
In our project the requirement of restriction of report is as follows.
There are two reports
1. Carrier View Report
2. Carrier Drilldown Report
Carrier View which is on Multiprovider is main report and Carrier Drilldown report, which is on DSO (ODS) is RRI report.
Carrier Vendors (these are vendors taking care of transporting the goods to customer locations from plant) will be viewing these reports. We have a master data maintained for Carriers as Carrier ID. The report has this Carrier ID in rows. Each carrier vendor would be given a SAP ID for logging into BW WEB reports.
Security Requirement: When a carrier execute report, the data in the report should be restricted to Carrier ID associated with the SAP ID which he is using.
Kindly suggest us the steps to do it, I am not basis person, but I need to help him.
Thanks and regards,
BalarajHi Balaraj,
You can use <a href="http://help.sap.com/saphelp_nw70/helpdata/en/66/019441b8972e7be10000000a1550b0/frameset.htm">Analysis Authorizations</a> in BI. Use transaction RSECADMIN to create authorizations and user assignments.
You need to declare Carrier ID Infoobject as Authorization relevant. Analysis authorizations are not based on authorization objects. Instead, you create authorization for each carrier that include Carrier ID characteristic and some restricted value(s) for the characteristic. You can then assign this authorization to one or more users(SAP IDs). When ever a query with Carried ID is executed, It checks for the analysis authorizations and hence he can acess only those values that are assigned in his own authorization.
Instead of assigning the corresponding Carrier IDs values for each authorization manually, you can create a single authorization for Carrier ID and fill in the values of the authorization using <a href="http://help.sap.com/saphelp_nw70/helpdata/en/91/a62c42fb6fdd2ce10000000a1550b0/frameset.htm">Authorization variables</a>. In this case in the customer exit you need to use the master data maintenance of SAP ID and CARRIER ID and fill in the values of E_T_RANGE depending on the user name SY_UNAME.
Assign points if you find it helpful.
Regards, Uday
Maybe you are looking for
-
I have issue with my account acutely I can't download any application when I try to downloading any application it show my Apple ID has been disabled ,so please I want to get your usual support.
-
Inactive Trade Lines - Close or let it ride til the Creditor closes it?
Hello all: Thanks to the advice of the forum I have had great advances in my credit worthiness. At this juncture there are several trade lines that I am not using and expect to go inactive. I know that the creditors decide when they stop reporting an
-
Webpage link problem in adobe acrobat 8 pro
Webpage links work fine locally. When I put these PDFs with webpage links online, they still work fine. After i combine PDFs as a package, webpage links only work fine locally. The links cannot open after i put the PDF package on our website. Pls giv
-
Hi Gurus My client is providing advance without vendor. What is the procedure of advance cash? Eg: - No vendor Lot of vehicles is taking Rent purpose (for one day) Cash advance Cash Payment Passing entry like Vehicle Charges A/c 200
-
Hi to all In development server we are able to print the things with same setting in quality and production no print comes error print was not generated