OWB !0g R2: Does OWB create records for higher levels in a dimension?
For example, if there are two levels PRODUCT_CATEGORY and PRODUCT, it looks like OWB populates the PRODUCT_CATEGORY records too in the dimension. Is this the default behaviour? Is there a way to turn this off, and only have the lowest level records populated?
I will expand on the prior example to ask another dimension related question.
ROW - 1
PRODUCT_CATEGORY - DAIRY, FARM_NAME
PRODUCT - NULL
ROW - 2
PRODUCT_CATEGORY - DAIRY, FARM_NAME
PRODUCT - 2L MILK, FAT_CONTENT
Q1: I need to join to another table on DAIRY, and to pull the FARM_NAME and the attributes from the second level (2L MILK, FAT_CONTENT). How do you guys do something like this in practical terms - check where the surrogate key for the second level is not null? One could also join on DAIRY where 2L MILK or FAT_CONTENT are not null?
Q2: The other area where I am unclear is whether to use in the mapping the dimension object or the bound table. If I try to use the dimension then OWB will not let me do this because you can not source from more than level at the same time. I guess I will have to use a join? The other option is to use the table, but witht a complex large dimension that can get messy. So ... what is the correct approach in general - use dimensions or the underlying tables in a mapping?
Similar Messages
-
How to load Cj01 create project for WBS level 1,2 and 3
Dear All
I want to load the project for WBS element.I had used IDOC project01 for the same but I am getting error as 'SaveReplica'method was not called up via ALE.I am presently trying with LSMW recording for tcode CJ01 in order to populate the
wbs levels 1 ,2 and 3 since the hierachy is not fixed i:e there is no limit as to how many 2 or 3 wbs levels are there so how shall i proceed with recording.If any body has migrated Projects for WBS elements please do share me.In my recording i am getting error 'Do not enter a level greater than 2'.is it that i have to carry t recording for each level seperately.
Tried with Bapi Bapi_project_maintain and all Bapis related to it most of the cases i am getting
error as to no initialization created though having executed Bapi_Ps_Initialization.
Regards
SomnathHi Somnath,
The BAPI, BAPI_PROJECT_MAINTAIN should work for any levels of requirement..and you dont need to initialize it. First, go through the documentation given in the SE37 transaction code. It will explain all. Just concentrate on the reference number. If you see in the example given there, two wbs elements are being created.
Then you have to use methods like create,save...unlike other BAPI's.
Just go through the documentation once.
Regards,
Vishwa. -
How to Skip weight data from Sales order for Higher level BOM material
I have maintained a BOM at Item level with item category group LUMF.
And the higher level item is not subjected for pricing and costing. While creating the higher level Item I did not maintain weight for it. Now when I create a sales order due to the incompletion log system is asking to maintain Weight details for higher level item also.
But I donu2019t want to maintain weight for that item nor I want to remove net weight and gross wt from incompletion log.
While creating higher level material with material type FERT and I have maintained LUMF and all things are normal. Also tell me do I need to select any different material type or do I need to go for different settings ?
I hope my query is clear. Please ask if query is not clear.
Please Guruu2019s suggest me.Hi ,
I do not know what a reference charactersitcs is,but there are all independant characeristics in terms of their values.
A guess it is because the VC data is changed after the sales order is created, the updated VC data is displayed properly only in VA02 or VA03 but other function modules fail to display the updated VC data.
I understand there is a relationship of instance -between sales order object and VC data object-which we need to update and then see the latest data.
Please let me know if anyone has debgged VA03 to know how the standard SAP program retrieves VC data in a sales order.
Thank you,
Hemant -
Why does OWB 9.2 generate UK's on higher levels of a dimension?
When you specify levels in a dimension, OWB 9.2 generates unique key constraints in the table properties for every level, but only the UK on the lowest level is visible in the configuration properties. Why then are these higher level UK's generated? Is this a half baked attempt to implement the possiblility to generate a snow flake model in OWB?
Jaap.Piotr, Roald and others,
This is indeed a topic we spend a lot of our time on these past months. We are addressing this as (in my old days I had the same problem as a consultant) we know that this is a common problem.
So the solution is one that goes in 2 directions:
- Snowflake support
- Advanced dimension data loading
Snowflake is obvious, may not be desired for various reasons but we will start supporting this and loading data for it in mapping.
If you want a star table, you will know that a completely flattened table with day at the lowest level will not be able to get you a unique entry for month. So what people tend to do is one of the following:
- Proclaim the first of the month the Month entry point (this stays closest to the star table and simply relies on semantics on both ETL and query side).
- Create extra day level entries which simbolize the month, so you have a day level with extra entries
- Create views, extra tables etc to cover the extra data
- Create a data set within the tables that solves the key problem
We have opted for the last one. What you need to do for this is a set of records that uniquely identify any record in any level. Then you add a key which links to the dimension at the same point (a dimension key), so all facts always use this surrogate key to link (makes life in query tools easier).
For a time dimension you will have a set of day records with their months etc in them (the regular star). Then you add a set of records with NULL in the day having months and up. And you go up the hierarchy. For this we will have the ETL logic (in other words you as a designer do not worry about this!). On the query tool you must be a little cautious on counts but this is doable and minor.
As you can see none of the solutions are completely transparent, but we believe this is one that solves a lot of problems and gives you the best of all worlds. We will also support the same data structure in the OLAP dimensions for the database as well in the relational dimension. NOTE that there are some disclaimers with this as we are doing software here...
In principal however we will solve your problem.
Hope this explains some of our plans in this area.
Jean-Pierre -
Creating records for Partner function ?
Dear all,
I am creating partner function as a sales partner, can i maintain record for the same?
Bcoz in condition table there is no field for partner determination.
Can u plz send me some details regarding the same.
Thanks & Regards,
PMhi,
i have got the procedure for commission agent.. just transform the report to your sales partner requirement instead of comm agent requirement.
hope it helps you.
For creating commission agent, you have to follow below steps.
1) Establish Partner Functions for the Commissionee(s)
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PARTNER DETERMINATION ->; DEFINE PARTNER FUNCTIONS
Transaction Code: VOPA
2) Assign the Partner Functions to Partner Procedures
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PARTNER DETERMINATION ->; DEFINE PARTNER FUNCTIONS
Transaction Code: VOPA
3) Create a Partner Procedure for the Commissionees
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PARTNER DETERMINATION ->; DEFINE PARTNER FUNCTIONS
Transaction Code: VOPA
4) Create New Customer Account Group(s) for Commission Agents
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; LOGISTICS GENERAL ->; LOGISTICS BASIC DATA: BUSINESS PARTNERS ->; CUSTOMERS ->; CONTROL ->; DEFINE ACCOUNT GROUPS AND FIELD SELECTION FOR CUSTOMER
Transaction Code: OVT0
5) Assign the Partner Functions to the Customer Account Group(s)
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PARTNER DETERMINATION ->; DEFINE PARTNER FUNCTIONS ->; GOTO ->; PARTNER FUNCTIONS ->; ENVIRONMENT ->; ACCOUNT GROUP ASSIGNMENT
Transaction Code: VOPA
6) Assign the Partner Functions to the Partner Procedure for the Sales Document Header
Menu Path: Tools ->; Business Engineer ->; Customizing ->; Sales and Distribution ->; Basic Functions ->; Partner Determination ->; Define Partner Functions
Transaction Code: VOPA
7) Assign the Partner Functions to the Partner Procedure for the Sales Document Item (OPTIONAL)
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PARTNER DETERMINATION ->; DEFINE PARTNER FUNCTIONS
Transaction Code: VOPA
8) Edit the Pricing Communication Structure (KOMKAZ) to Hold the New Functions (Client Independent)
Menu Path: Menu Path: TOOLS ->; ABAP WORKBENCH ->; DEVELOPMENT ->; DICTIONARY
Transaction Code: SE11
9) Edit MV45AFZZ userexit_pricing_prepare_tkomk (Client Independent)
Menu Path: TOOLS ->; ABAP WORKBENCH ->; DEVELOPMENT ->; ABAP EDITOR
Transaction Code: SE38
10) Edit RV60AFZZ - userexit_pricing_prepare_tkomk (Client Independent)
Menu Path: TOOLS ->; ABAP WORKBENCH ->; DEVELOPMENT ->; ABAP EDITOR
Transaction Code: SE38
11) Edit MV45AFZB - userexit_new_pricing_vbkd changing new_pricing (Client Independent)
Menu Path: TOOLS ->; ABAP WORKBENCH ->; DEVELOPMENT ->; ABAP EDITOR
Transaction Code: SE38
The following code should be inserted into program MV45AFZZ to allow the system to re-execute pricing if the user makes a change to the relevant partner function (alteration, addition, deletion).
13) Add the KOMKAZ Fields to the Pricing Field Catalog (Client Independent)
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PRICING ->; PRICING CONTROL ->; DEFINE ACCESS SEQUENCES ->; MAINTAIN ACCESS SEQUENCES
Transaction Code: OV24
14) Create Condition Tables (Client Independent)
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PRICING ->; PRICING CONTROL ->; DEFINE ACCESS SEQUENCES ->; MAINTAIN ACCESS SEQUENCES
Transaction Code: V/03
15) Create an access sequence containing the new tables (Client Independent)
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PRICING ->; PRICING CONTROL ->; DEFINE ACCESS SEQUENCES ->; MAINTAIN ACCESS SEQUENCES
Transaction Code: V/07
16) Create a new condition type
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PRICING ->; PRICING CONTROL ->; DEFINE CONDITION TYPES ->; MAINTAIN CONDITION TYPES
Transaction Code: V/06
17) Add the Condition Type to the Pricing Procedure
Menu Path: TOOLS ->; BUSINESS ENGINEER ->; CUSTOMIZING ->; SALES AND DISTRIBUTION ->; BASIC FUNCTIONS ->; PRICING ->; PRICING CONTROL ->; DEFINE AND ASSIGN PRICING PROCEDURES ->; MAINTAIN PRICING PROCEDURES
Transaction Code: V/08
11) Create Commsission Report ZZCOMMISSION (Client Independent)
Menu Path: TOOLS ->; ABAP WORKBENCH ->; DEVELOPMENT ->; ABAP EDITOR
Transaction Code: SE38
regards,
Siddharth -
How to Create records for n periods
hello,
Iu2019m new to script logic and MDX and need any help.
I would like to know how to do it:
Include a new information (100) for dimension account Sales, from time period 2008.NOV, 5 periods, like that:
2008.nov / 2008.dec/ 2009.JAN/ 2009.FEB/ 2009.MAR
100/ 100/ 100/ 100/ 100
Any suggestions?
Thanks in advance.
SueHello Kyle,
Thanks for your reply.
The application has a user-defined dimension, Emp. There is a property called date1 at the Emp dimension. Depending on the Emp selected, it will have a different initial time.
The number of periods (5 in the example) can be different. There is a member at the account dimension, period, that defines how many periods must be stored.
Information for Sales comes from other account, SalesTot. User inputs other values for SalesTot calculation.
So I have,
For emp1.dat1 = 2008.NOV
have to update Sales account, beginning from 2008.NOV and updating for the others periods. The biggest difficulty is because of the initial time and I have to create new records for the sequence, and I cannot have a hierarchy for this.
Hope this clarifies a bit.
Thanks again.
Sue -
Create Records for each date in a range
I wish to create a report which will creat a record for every day between two dates:
Before:
==============================
Name Start Date End Date Car
Brown 01-10-2011 05-10-2011 Ford
Brown 06-10-2011 08-10-2011 Nissan
White 05-10-2011 09-10-2011 Kia
After:
==============================
Brown 01-10-2011 Ford
Brown 02-10-2011 Ford
Brown 03-10-2011 Ford
Brown 04-10-2011 Ford
Brown 05-10-2011 Ford
Brown 06-10-2011 Nissan
Brown 07-10-2011 Nissan
Brown 08-10-2011 Nissan
White 05-10-2011 Kia
White 06-10-2011 Kia
White 07-10-2011 Kia
White 08-10-2011 Kia
White 09-10-2011 Kia
Please advise how I should go about this
many thanks
Cheers
Davidhere's a formula to help you get started...this will create a text output formula that will have the dates displayed...you'll have to modify it to include the other info that you need in your display.
1) create a new formula that will be Basic Syntax...change the "ship date" field in the syntax below to your date field.
dim thisdate2 as date
dim nextdate2 as date
dim output as string 'output is the text display
dim daysbetween2 as number
dim looptimes2 as number
looptimes2 = 0
daysbetween2 = 0
thisdate2 = {Ship Date.DE_Ship_Date} + 1
nextdate2 = nextvalue({Ship Date.DE_Ship_Date})
if nextdate2 - thisdate2 > 0 then daysbetween2 = nextdate2 - thisdate2 else daysbetween2 = 1
do
output = output + monthname(month(thisdate2),true) + "/" + totext(day(thisdate2),0,"") + chr(10)
looptimes2 = looptimes2 + 1
thisdate2 = thisdate2 + 1
if thisdate2 in nextdate2 to {Ship Date.DE_Ship_Date} then formula = output
loop until looptimes2 = daysbetween2
2) put this formula in a new details section that is formatted to Supress Blank Section
3) format the formula so that it is Can Grow -
How do create records for packing instructions
Hello,
Can anyone tell me where and how to create condition records for packing instructions.
This is required for automatic packing
Regards
TapanUse transaction POP1 to create PAcking insturction.
Reward the points -
Reports9i Builder does not create Graph for Web Source
Hi
I installed the new 9iDS and I'm trying to create a jsp page with a graph. If I create a graph in the paper layout it will run in paper layout only. After checking the web source code there is no <rw:graph ... > tag. If I try to insert the graph in the web source view I get REP-0069: Internal error REP-0: oracle/reports/RWExxception: 1.0. Is there a way to create graph for the web layout?.Hi Nestor,
This should work fine. I assume you created the report using the wizard. Did you by any chance choose to create a paper layout only?
Try the wizard option 'Create Web Layout only' or 'Create both Web and Paper Layout'.
Regards, Christian. -
What settings does the "Create PDF for Review" output use?
Product: RoboHelp 11 (TCS 5)
Menu location: Review > Create PDF for Review
Issue: The default output from the menu location results in output that is unusable: e.g., styles aren't mapping correctly, making the document difficult to read and review. Is there a default print layout or some other control available?
Ultimate objectives: Track changes, perform shared reviews, import comments from the generated PDF, and so forth.
Secondary questions: Can I import comments/markup from a shared review if I generated the PDF using the print layout, instead of the Review > Create PDF for Review menu option? If so, will I then be able to manage comments from the Review pane and perform other related-reviewing functions?I believe it maps via CSS. I don't believe you can change this behaviour.
If you generate printed documentation, it is NOT possible to import the review comments.
Kind regards,
Willam -
How to create a custom measure for each level of a dimension
Hi all!
Can Anyone please explain me with an example, how to create a custom measure for each level for a dimension? I dont mine if you use
one or more measures.
thanks in advance
hope someone helps me.For example:I create a dimension for product_dim witch has 4 levels:total, class, family and item:
d_aben18
n1_aben18
n2_aben18
n3_aben18
n4_aben18
herarchy:h_aben18
cube:cubo_aben18
measure:med_aben18
I create this code to fetch the data to the dimension:
TRAP ON CLEANUP
SQL DECLARE c1 CURSOR FOR SELECT-
total_product_id,1,'N1_ABEN18',total_product_dsc,-
class_id,1,'N2_ABEN18',total_product_id,class_dsc,-
family_id,1,'N3_ABEN18', class_id, family_dsc,-
item_id,1,'N4_ABEN18',family_id,item_dsc-
FROM PRODUCT_DIM
"OPEN THE CURSOR
SQL OPEN c1
"FETCH THE DATA
SQL FETCH c1 LOOP INTO-
:APPEND D_ABEN18, :D_ABEN18_H_aben18_HIERDEF,:D_ABEN18_N1_aben18_LEVELDEF,:D_ABEN18_long_description,-
:APPEND D_ABEN18, :D_ABEN18_H_aben18_HIERDEF,:D_ABEN18_N2_aben18_LEVELDEF,:D_ABEN18_parentrel,-
:D_ABEN18_long_description,-
:APPEND D_ABEN18, :D_ABEN18_H_aben18_HIERDEF,:D_ABEN18_N3_aben18_LEVELDEF,:D_ABEN18_parentrel,-
:D_ABEN18_long_description,-
:APPEND D_ABEN18, :D_ABEN18_H_aben18_HIERDEF,:D_ABEN18_N4_aben18_LEVELDEF,:D_ABEN18_parentrel,-
:D_ABEN18_long_description,-
"SAVE THE CHANGES
UPDATE
COMMIT
CLEANUP:
SQL CLOSE c1
SHOW 'KK2'
Then I create a cube with use compression off, and in rules sum for example.
After, I create a measure and I select Override the aggregation specification for the cube, in rules I put nonadditive and I would like to create aprogram to assign distinct values to each level of the dimension. For example, I put 1, 2 3, and 4 values, but at the end I would like to put count(distinct(values)).
for that I create another program:
VRB D_RETURN DECIMAL
if D_ABEN18_N1_ABEN18_LEVELDEF eq 'N1_ABEN18'
then D_RETURN = 1
if D_ABEN18_N2_ABEN18_LEVELDEF eq 'N2_ABEN18'
then D_RETURN = 2
if D_ABEN18_N3_ABEN18_LEVELDEF eq 'N3_ABEN18'
then D_RETURN = 3
if D_ABEN18_N4_ABEN18_LEVELDEF eq 'N4_ABEN18'
then D_RETURN = 4
else d_return=26
return d_return
"SHOW D_RETURN
cubo_aben18_med_aben18_stored=d_return
but it doesnt work.I dont know how to put to assign or to see what I want.
I report the measure, or I report the program, but then how can I see the values of the measure?
thanks in advance -
JMX for high level AMPs?
I have to implement a high level API for a special device and I wonder if JMX is the right choice.
Is it possible to write a high level object oriented API with JMX or is it just a modern substitute of SNMP?
For example if I write an API for my mp3 radio player can I say <record the song "Walk Like an Egyptian" from "The
Bangles", when ever it comes> and later copy all received songs to the client or can I just say <start recording now> and <stop recording now>?
Regard, I want to implement an API so other complex applications can control my device comfortable, not a plug-in
into an existing management application that controls other stand-alone devices too.
Any comments? What's your experience?
Marvin HaktarYes, JMX is suitable for creating a high level API that offers more flexibility in management than a pure SNMP based approach. One of the goals of the JMX specification is to address the needs of application management, whereas SNMP has traditionally focused on network/device management.
Juha Lindfors
Author of "JMX: Managing J2EE with Java Management Extensions"
http://www.amazon.com/exec/obidos/ASIN/0672322889/104-6670791-7933546
Senior Developer, JBoss Group LLC -
Maintain Columns for Higher Levels in Hierarchy when using Drill Down
Hello all,
I've searched through this forum looking for an answer to this, since I thought it might be a common question, but I wasn't able to find any related content. So I apologize if this has already been answered in the past.
I would like to know if when drilling down in a WEBI report, it is possible to automatically add dimension columns to a report as you drill down to the lower levels in the heirarchy, and keep the columns with the higher level dimension values, rather than replace those columns, which is the default behavior. As a simple example, suppose I have the following columns in a report:
Product Sales Amount
Now suppose I have set up a heirarchy in the Universe with Product, Sub-Product, then Region, in that order. In the WEBI report with the drill filter options enabled, when I click on the Product link, the default behavior is to replace the Product column with the Sub-Product dimension and display the following:
Sub-Product Sales Amount
Instead, I would like it to display:
Product Sub-Product Sales Amount
Then subsequently, of course:
Product Sub-Product Region Sales Amount
Does anybody know of a simple way to accomplish this? I suppose this could be accomplished using the openDocument method with links to separate reports showing the addtional columns, but this seems a bit complicated for a relatively smple requirement. I'm hoping that there is an existing simpler solution to this problem. Please advise. Any information would be greatly appreciated.Bernardo,
The drill down capability is vertical and not horizontal. There are two solutions, the one of open document as you mentioned is one. The other solution depends on the way you have deployed your system. If you have given users the capability to run reports in "modify" mode (WebI), then they can insert columns to the grid according to the scenario you mention
Product Sub-Product Sales Amount
and forego using the "drill fiter" per se. If your deployment only permits most users to view the report in "read-only" mode (InfoView), then you have limited options.
Thanks,
John -
Does OWB creates CWM2 for OLAP/BI
The environment is:
Personal Oracle9i Release 9.2.0.3.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.3.0 - Production
JDev 9.0.3.1035
I managed to run the OLAP/BI Beans tutorials. So, I am now ready to create my own OLAP Metadata.
I created some Dimensions, Cube and Measures with Oracle Enterprise Manager (OEM) which generates CWM (Common Warehouse Metadata) for 9R1.
But to use full capabilities I need CWM2 from 9R2 so to generate OLAP Objects in CWM2 it seems that I need to go to OLAP Worksheet or use the PL/SQL packages for CWM2.
I came across document named "Use Oracle Warehouse Builder To Build Your OLAP-Ready Data Warehouse" dated 2002, authors: Particia Fay, Jean-Pierre Dijcks and Oracle Corp. This documents shows how to create OLAP Objects with OWB in 9i.
Does OWB generates OLAP Objects of CWM2 type ?
Thanks for the feedback.
Pedro GarzaI just want to be clear on the DB version. I currently have 9.2.0.3.0 and it looks like I need a yet to be released 9.2.0.4. (rather than 9.0.2.4).Correct. Sorry for the typo in 9.2.0.4. The standalone OLAP patch on top of the database 9.2.0.3 exists but is not yet externally released. And you do need it. It is likely that it will be released in the patchset 9.2.0.4 rather than standalone.
AW Manager is a tool with its own interface, very much like OEM, with a tree showing Measure Folders, Cubes and Dimensions. It appears under "Integrated Management Tools" in the menu when installed. So you would use OEM to create relational implementation of these objects and AWM to create dimensional implementation.
Or you would use Warehouse Builder to model the objects once and then deploy to either relational or dimensional.
Nikolai -
Create records for missing periods in transformation
I need to create some routine that creates fical periods missing with 0,00 as value in de key figure and the characteristics remain the same. It is possible to create in the transformation something like this? Should put it in the initial routine or in the end one?
Source
Company 1; Account 1; Fiscper 012009; KF 345 Eur
Company 1; Account 1; Fiscper 032009; KF 123 Eur
Company 1; Account 1; Fiscper 062009; KF 678 Eur
Company 1; Account 2; Fiscper 012009; KF 987 Eur
Final destination
Company 1; Account 1; Fiscper 01.2009; KF 345 Eur
Company 1; Account 1; Fiscper 02.2009; KF 0 Eur
Company 1; Account 1; Fiscper 03.2009; KF 123 Eur
Company 1; Account 1; Fiscper 04.2009; KF 0 Eur
Company 1; Account 1; Fiscper 05.2009; KF 0 Eur
Company 1; Account 1; Fiscper 06.2009; KF 678 Eur
Company 1; Account 1; Fiscper 07.2009; KF 0 Eur
Company 1; Account 2; Fiscper 01.2009; KF 987 Euryou are right, that's what I'm afraid of.
I already have a end routine:
PROGRAM trans_routine.
* CLASS routine DEFINITION
CLASS lcl_transform DEFINITION.
PUBLIC SECTION.
* Attributs
DATA:
p_check_master_data_exist
TYPE RSODSOCHECKONLY READ-ONLY,
*- Instance for getting request runtime attributs;
* Available information: Refer to methods of
* interface 'if_rsbk_request_admintab_view'
p_r_request
TYPE REF TO if_rsbk_request_admintab_view READ-ONLY.
PRIVATE SECTION.
TYPE-POOLS: rsd, rstr.
* Rule specific types
TYPES:
BEGIN OF _ty_s_TG_1,
* InfoObject: ZIGCHENTI Magn_ci - Entity.
/BIC/ZIGCHENTI TYPE /BIC/OIZIGCHENTI,
* InfoObject: ZIGCHPART Magn_ci - Partner.
/BIC/ZIGCHPART TYPE /BIC/OIZIGCHPART,
* InfoObject: ZIGCHCTSH Magn_ci - CtShare.
/BIC/ZIGCHCTSH TYPE /BIC/OIZIGCHCTSH,
* InfoObject: ZIGCHCURR Magn_ci - Currency.
/BIC/ZIGCHCURR TYPE /BIC/OIZIGCHCURR,
* InfoObject: ZIGCHZONE Magn_ci - ZONE.
/BIC/ZIGCHZONE TYPE /BIC/OIZIGCHZONE,
* InfoObject: 0FISCPER Exercício / período.
FISCPER TYPE /BI0/OIFISCPER,
* InfoObject: 0FISCVARNT Variante de exercício.
FISCVARNT TYPE /BI0/OIFISCVARNT,
* InfoObject: ZIGKFCSAM Magnitude - Consolidated Amount.
/BIC/ZIGKFCSAM TYPE /BIC/OIZIGKFCSAM,
* InfoObject: 0CURRENCY Código da moeda.
CURRENCY TYPE /BI0/OICURRENCY,
* InfoObject: 0FISCYEAR Exercício.
FISCYEAR TYPE /BI0/OIFISCYEAR,
* InfoObject: 0FISCPER3 Período contábil.
FISCPER3 TYPE /BI0/OIFISCPER3,
* InfoObject: ZIGCHAINT Magn_ci - Audit ID.
/BIC/ZIGCHAINT TYPE /BIC/OIZIGCHAINT,
* InfoObject: ZIGCHFINT Magn_ci - Fluxo.
/BIC/ZIGCHFINT TYPE /BIC/OIZIGCHFINT,
* InfoObject: ZIGCHGLAC Magn_ci - Conta.
/BIC/ZIGCHGLAC TYPE /BIC/OIZIGCHGLAC,
* InfoObject: ZIGCHCINT Magn_ci - Categoria.
/BIC/ZIGCHCINT TYPE /BIC/OIZIGCHCINT,
* InfoObject: ZIGCHPINT Magnitude - Perímetro de Consolidação.
/BIC/ZIGCHPINT TYPE /BIC/OIZIGCHPINT,
* InfoObject: ZIGCHCCUR Magn_ci - Consolidation Currency.
/BIC/ZIGCHCCUR TYPE /BIC/OIZIGCHCCUR,
* InfoObject: ZIGCHVINT Magnitude - Versão de Consolidação.
/BIC/ZIGCHVINT TYPE /BIC/OIZIGCHVINT,
* InfoObject: ZIGCHPROD Magn_ci - PROD.
/BIC/ZIGCHPROD TYPE /BIC/OIZIGCHPROD,
* InfoObject: ZIGCHDEST Magn_ci - Dest.
/BIC/ZIGCHDEST TYPE /BIC/OIZIGCHDEST,
* InfoObject: ZIGKFCSAC Magn - Cons.Amount - CURR.
/BIC/ZIGKFCSAC TYPE /BIC/OIZIGKFCSAC,
* InfoObject: ZIGKFCAIP Magn - Cons.Amount - IVA - PMP.
/BIC/ZIGKFCAIP TYPE /BIC/OIZIGKFCAIP,
* InfoObject: ZIGKFCAIR Magn - Cons.Amount - IVA - PMR.
/BIC/ZIGKFCAIR TYPE /BIC/OIZIGKFCAIR,
* InfoObject: ZIGKFVLM Dados Magnitude - Valor Mensal.
/BIC/ZIGKFVLM TYPE /BIC/OIZIGKFVLM,
* Field: RECORD.
RECORD TYPE RSARECORD,
END OF _ty_s_TG_1.
TYPES:
_ty_t_TG_1 TYPE STANDARD TABLE OF _ty_s_TG_1
WITH NON-UNIQUE DEFAULT KEY.
*$*$ begin of global - insert your declaration only below this line *-*
... "insert your code here
*$*$ end of global - insert your declaration only before this line *-*
METHODS
end_routine
IMPORTING
request type rsrequest
datapackid type rsdatapid
EXPORTING
monitor type rstr_ty_t_monitors
CHANGING
RESULT_PACKAGE type _ty_t_TG_1
RAISING
cx_rsrout_abort.
METHODS
inverse_end_routine
IMPORTING
i_th_fields_outbound TYPE rstran_t_field_inv
i_r_selset_outbound TYPE REF TO cl_rsmds_set
i_is_main_selection TYPE rs_bool
i_r_selset_outbound_complete TYPE REF TO cl_rsmds_set
i_r_universe_inbound TYPE REF TO cl_rsmds_universe
CHANGING
c_th_fields_inbound TYPE rstran_t_field_inv
c_r_selset_inbound TYPE REF TO cl_rsmds_set
c_exact TYPE rs_bool.
ENDCLASS. "routine DEFINITION
*$*$ begin of 2nd part global - insert your code only below this line *
... "insert your code here
*$*$ end of 2nd part global - insert your code only before this line *
* CLASS routine IMPLEMENTATION
CLASS lcl_transform IMPLEMENTATION.
* Method end_routine
* Calculation of result package via end routine
* Note: Update of target fields depends on rule assignment in
* transformation editor. Only fields that have a rule assigned,
* are updated to the data target.
* <-> result package
METHOD end_routine.
*=== Segments ===
FIELD-SYMBOLS:
<RESULT_FIELDS> TYPE _ty_s_TG_1.
DATA:
MONITOR_REC TYPE rstmonitor.
*$*$ begin of routine - insert your code only below this line *-*
DATA: wa_result_fim type _ty_s_TG_1.
DATA: l_tabix type sy-tabix.
CLEAR wa_result_fim.
l_tabix = 0.
SORT RESULT_PACKAGE BY /BIC/ZIGCHENTI /BIC/ZIGCHAINT /BIC/ZIGCHGLAC
/BIC/ZIGCHPINT
/BIC/ZIGCHVINT FISCPER.
LOOP AT RESULT_PACKAGE assigning <RESULT_FIELDS>.
IF sy-tabix = 1.
<RESULT_FIELDS>-/BIC/ZIGKFVLM = <RESULT_FIELDS>-/BIC/ZIGKFCSAM.
ELSE.
l_tabix = sy-tabix - 1.
READ TABLE RESULT_PACKAGE INDEX l_tabix INTO wa_result_fim.
IF sy-subrc EQ 0.
IF wa_result_fim-/BIC/ZIGCHENTI =
<RESULT_FIELDS>-/BIC/ZIGCHENTI
AND wa_result_fim-/BIC/ZIGCHAINT =
<RESULT_FIELDS>-/BIC/ZIGCHAINT
AND wa_result_fim-/BIC/ZIGCHGLAC =
<RESULT_FIELDS>-/BIC/ZIGCHGLAC
AND wa_result_fim-/BIC/ZIGCHPINT =
<RESULT_FIELDS>-/BIC/ZIGCHPINT
AND wa_result_fim-/BIC/ZIGCHVINT =
<RESULT_FIELDS>-/BIC/ZIGCHVINT
AND wa_result_fim-FISCYEAR = <RESULT_FIELDS>-FISCYEAR.
Before I do this calculation I want it to validate if exist the period if not should append it with 0,00 and them do the subtraction.
<RESULT_FIELDS>-/BIC/ZIGKFVLM =
<RESULT_FIELDS>-/BIC/ZIGKFCSAM -
wa_result_fim-/BIC/ZIGKFCSAM.
ELSE.
<RESULT_FIELDS>-/BIC/ZIGKFVLM =
<RESULT_FIELDS>-/BIC/ZIGKFCSAM.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDIF.
ENDLOOP.
*-- fill table "MONITOR" with values of structure "MONITOR_REC"
*- to make monitor entries
... "to cancel the update process
* raise exception type CX_RSROUT_ABORT.
*$*$ end of routine - insert your code only before this line *-*
ENDMETHOD. "end_routine
* Method inverse_end_routine
* This subroutine needs to be implemented only for direct access
* (for better performance) and for the Report/Report Interface
* (drill through).
* The inverse routine should transform a projection and
* a selection for the target to a projection and a selection
* for the source, respectively.
* If the implementation remains empty all fields are filled and
* all values are selected.
METHOD inverse_end_routine.
*$*$ begin of inverse routine - insert your code only below this line*-*
... "insert your code here
*$*$ end of inverse routine - insert your code only before this line *-*
ENDMETHOD. "inverse_end_routine
Edited by: João Piçarra on Aug 13, 2009 12:18 PM
Maybe you are looking for
-
Please help. I have windows 7 but use vista on my laptop and remote into my desktop when working from home. I have Adobe Acrobat 9 Pro on my computer. When I try to merge files and convert into a single PDF file it give me a save as box for each f
-
JDeveloper's compiled JSP location in a .war file
When I choose to build a .war file in JDeveloper 10.1.2 that contains the .JSP files, it sticks the compiled jsps in WEB-INF/classes/.jsps. To get the app server to properly recognize the precompiled JSPs, they need to be located in the WEB-INF/class
-
IPhoto amazing...
I am absolutely and positively amazed with how well and stable iPhoto 6 seems to be so far. I have a rather large library of 23,000 photos and haven't been able to use iPhoto in several months because importing caused the application to crash all the
-
hello, For India where do we define section code? Thanks
-
Dreamweaver CC 2014 extrem langsam
Hallo Zusammen Ich wollte kurz nachfragen, ob sonst jemand das gleiche Problem hat. Bei mir ist Dreamweaver CC 2014 sowas von langsam.. obwohl ich eine ziemlich anständige HW Config habe. Sobald ich mehr als 4 Dateien im DW geöffnet habe kann ich kau