Update Rule Definition
All,
I need to update a rule definition without affecting (adding or deleting any users during the update).
Would it be alright if I just detach the rule do the updates and reattach it again to the group.
Will the users be deleted from the group if we detach the rule.
Thanks,
M
Would it be alright if I just detach the rule do the updates and reattach it again to the group+. If you want to update the rule definition just do the update in design console, no need to detach and reattach it again to the group. It will not have impact for existing users present in that group.
Similar Messages
-
Using an internal table from a strt rountine in an update rule
I created a start routine and i now want to take the value from the internal table and set my result to it in my update rule. I try that and it says it isn't a header table but I defined it this way. here is the code
DATA: T_BILL_DATA LIKE STANDARD TABLE OF /BIC/AZBIL_O5300,
Ls_data like line of T_BILL_DATA.
$$ end of global - insert your declaration only before this line -
FORM compute_key_field
TABLES MONITOR STRUCTURE RSMONITOR "user defined monitoring
USING COMM_STRUCTURE LIKE /BIC/CS2LIS_12_VCSCL
RECORD_NO LIKE SY-TABIX
RECORD_ALL LIKE SY-TABIX
SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
CHANGING RESULT LIKE /BIC/VZSD_C51T-SALESORG
RETURNCODE LIKE SY-SUBRC
ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
$$ begin of routine - insert your code only below this line -
fill the internal table "MONITOR", to make monitor entries
result value of the routine
READ TABLE T_BILL_DATA WITH KEY
DOC_NUMBER = COMM_STRUCTURE-DOC_NUMBER
S_ORD_ITEM = COMM_STRUCTURE-S_ORD_ITEM
REFER_DOC = COMM_STRUCTURE-DELIV_NUMB
REFER_ITM = COMM_STRUCTURE-DELIV_ITEM
BINARY SEARCH.
RESULT = T_BILL_DATA-SALESORG.Hi LMM,
The definition is not correct, your table doesn't have header line.
try this,
DATA: T_BILL_DATA LIKE STANDARD TABLE OF /BIC/AZBIL_O5300 with header line.
Hope it helps.
Thanks,
Soumya -
Error in Update rules while defining CKF at cube level
Hi,
I am willing to create a Calculated Key figure at CUBE level using formula function
<b>Unit Cube: Item Cube / Units</b>
<b>Definitation</b>
Item Cube - Total Cube for line
Units - Actual destination quantity in alternative unit
<b>Units</b>
The Unit for Item Cube is Volume unit and
The Unit for Units is Alternative Unit of Measure for Stock keeping Unit
When i tried to create CKF at Cube level in update rules using formula it is displaying me an error that no unit is available in source system for the CKF Unit Cube
How can I proceed on this
ThanksHi
Have you transferred the global settings from the context menu of source system where all the units from the source is replicated to BW system
Regards
N Ganesh -
Update rule problem - while data load
Hi friends,
I got the following error while doing initialisation for 2lis_02_sgr.
"ABORT was set in the customer routine 9998
Error 1 in the update "
In the forum i searched for this error and this error is something related to the start routine in my update rule.
But i dont know whats wrong with my routine.
Im giving the start routine below,pls go through this and give me your suggestions..
PROGRAM UPDATE_ROUTINE.
$$ begin of global - insert your declaration only below this line -
TABLES: ...
<i>TABLES /bic/AZMM_PUR100 .
DATA: T_PUR1 LIKE /bic/AZMM_PUR100 OCCURS 0 WITH HEADER LINE.</i>
$$ end of global - insert your declaration only before this line -
The follow definition is new in the BW3.x
TYPES:
BEGIN OF DATA_PACKAGE_STRUCTURE.
INCLUDE STRUCTURE /BIC/CS2LIS_02_SGR.
TYPES:
RECNO LIKE sy-tabix,
END OF DATA_PACKAGE_STRUCTURE.
DATA:
DATA_PACKAGE TYPE STANDARD TABLE OF DATA_PACKAGE_STRUCTURE
WITH HEADER LINE
WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.
FORM startup
TABLES MONITOR STRUCTURE RSMONITOR "user defined monitoring
MONITOR_RECNO STRUCTURE RSMONITORS " monitoring with record n
DATA_PACKAGE STRUCTURE DATA_PACKAGE
USING RECORD_ALL LIKE SY-TABIX
SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
CHANGING ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
$$ begin of routine - insert your code only below this line -
fill the internal tables "MONITOR" and/or "MONITOR_RECNO",
to make monitor entries
if abort is not equal zero, the update process will be canceled
CLEAR: T_PUR1[] ,
T_PUR1,
ABORT.
SELECT * INTO TABLE T_PUR1 FROM /bic/AZMM_PUR100.
IF SY-SUBRC EQ 0.
SORT T_PUR1 BY DOC_DATE
DOC_ITEM
DOC_NUM.
ELSE.
MONITOR-msgid = sy-msgid.
MONITOR-msgty = sy-msgty.
MONITOR-msgno = sy-msgno.
MONITOR-msgv1 = sy-msgv1.
MONITOR-msgv2 = sy-msgv2.
MONITOR-msgv3 = sy-msgv3.
MONITOR-msgv4 = sy-msgv4.
append MONITOR.
if abort is not equal zero, the update process will be canceled
ABORT = 1.
ENDIF.
ABORT = 0.
$$ end of routine - insert your code only before this line -
ENDFORM.
Thanks & Regards
Raguthanks gimmo and a.h.p,
i have done the correction as you said,pls verify that.
And also kindly explain me what is the reason for this start routine,what exactly it does???
CLEAR: T_PUR1[] ,
T_PUR1,
ABORT.
SELECT * INTO TABLE T_PUR1 FROM /bic/AZMM_PUR100.
IF SY-SUBRC EQ 0.
SORT T_PUR1 BY DOC_DATE
DOC_ITEM
DOC_NUM.
abort = 0. ( added abort = 0 as per your suggestion )
ELSE.
MONITOR-msgid = sy-msgid.
MONITOR-msgty = sy-msgty.
MONITOR-msgno = sy-msgno.
MONITOR-msgv1 = sy-msgv1.
MONITOR-msgv2 = sy-msgv2.
MONITOR-msgv3 = sy-msgv3.
MONITOR-msgv4 = sy-msgv4.
append MONITOR.
if abort is not equal zero, the update process will be canceled
ABORT = 1.
exit. ( added exit as per your suggestion )
ENDIF.
ABORT = 0.
$$ end of routine - insert your code only before this line -
ENDFORM.
Thanks & Regards
ragu -
Hi, my problem may be simple to solve, but I dont know too much ABAP so need some help.
I want to populate Cost Center in my cube by mapping it to Responsible Cost Center (attribute of Order Number).
How can I do that?
Thanks,
FrankHi Frank,
Insert Cost Center in Communication Structure and then in Start Routine of Update Rules insert this code (substitute definition with the IO code, cut off '0'):
data: begin of t_costcent occurs 0,
costcenter like /BI0/Pcostcenter-costcenter,
responsible like /BI0/Pcostcenter-responsible,
end of t_costcent.
select * into corresponding fields of table t_costcent
from /BI0/Pcostcenter where objvers = 'A'.
loop at DATA_PACKAGE.
read table t_costcent with key
responsible = DATA_PACKAGE-responsible
if sy-subrc = 0.
DATA_PACKAGE-costcenter = t_costcent-costcenter.
modify DATA_PACKAGE.
endif.
endloop.
Ciao.
Riccardo. -
On Dreamweaver CC how do I get to the css rule definition box?
On the other Dreamweavers when I wanted to edit a css, I selected the css and clicked on the pencil icon to open the css rule definition box.
The only way I find to get acess to the css rule definition box on the new CC is when I am creating a new div and then there is a option for a new style and it opens the box.
My question is how do I get to the box once the rule is created? the pencil icon is not there anymore.
Not good breaking workflows Adobe, some folks have work in progress...
Please help, thanks.Nancy O. wrote:
I can't remember the last time I used DW's CSS panels. If you know CSS, why not use code view? DW's Code Hinting is very good & it's much quicker to edit code directly in the style sheet than it is in CSS panels.
Nancy O.
That depends a bit on the situation. For example, in Netbeans I use the live connection with Chrome (embedded view or not) and I can then select an item in the live view in Chrome, which opens the css properties panes. These are quite similar to DW.
By changing the values in the css properties pane the changes in values are automatically saved in the css file, and visually updated in realtime in Chrome.
It can be very handy to quickly change the position or margin/padding/size of an element this way without having to switch back and forth to your css. Bit similar to the inspect element pane in FF and Chrome, and the changes are immediately saved.
When I still used DW I used it in the same manner for quick visual changes - and no reason to rummage through my css code.
In short, those css inspector panes can work quite efficiently when you need to polish the css code.
Granted, I would never use it while working on the main css code - but for slight and quick changes it can be a very handy feature. -
I am looking at an update rule to a DSO which also consists of start routine logic.
In the update rule a status object is derived using logic.
In the start routine there is some logic specific to the status object the details are as follows
Start Routine Logic (have not included definition of variables)
ls_c-status = <ls_c>-/bic/zstatus.
Logic in info object in the start routine
DATA:
l_status TYPE /bic/zstatus.
SELECT /BIC/Zstatus
INTO l_status
FROM /BIC/AZDSOLookup
WHERE
/BIC/ZKey_Field = COMM_STRUCTURE-/bic/zkey_field.
ENDSELECT.
RESULT = l_status.
CLEAR l_status.
The routine in the info object is making no reference to the variables defined in the start routine. Is that correct?
ThanksHi Edwin,
I think you are right I need to place in Global area/start routine I will post another question with details of requirements
Thanks -
Data is coming from one cube to another cube.
How to restrict the data in update rule by using routine , which is not require in to another Cube.
Thanks,
AsitHi Asit,
You are on which system BW 3.5 or BW 7.0?
If you are on BW 7.0, there are various way of doing this.
1> Using DTP: If you have definite filter criteria while loading data from Infocube 1 and Infocube 2, you can use it in DTP.
for eg. while doing data loads, exclude records where material group is blank. While creating DTP, you can specify required filter criteria.
2> using start routine: You can use start routine as well to exclude all those records which you don't want to load to target infocube.
For eg. Delete all records from source package where case ids are blank.
use below statement to code it:
Delete source_package where <fieldname> = <some values>.
Regards,
Nilima -
Ho to read intern table in update rule?
Hello experts,
I have the following start routine:
PROGRAM UPDATE_ROUTINE.
$$ begin of global - insert your declaration only below this line -
TABLES: /BIC/AZD_ODS_C00.
DATA: ITEM_TABLE TYPE STANDARD TABLE OF /BIC/AZD_ODS_C00
WITH HEADER LINE
WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.
DATA: gv_flag type c.
$$ end of global - insert your declaration only before this line -
$$ begin of routine - insert your code only below this line -
fill the internal tables "MONITOR" and/or "MONITOR_RECNO",
to make monitor entries
SELECT * FROM /BIC/AZD_ODS_C00 INTO TABLE ITEM_TABLE.
SORT ITEM_TABLE BY /BIC/ZABOOKID ASCENDING.
LOOP AT ITEM_TABLE.
AT NEW /BIC/ZABOOKID.
GV_FLAG = 'X'.
ENDAT.
ENDLOOP.
if abort is not equal zero, the update process will be canceled
ABORT = 0.
How can I read intern table ITEM_TABLE in a update rule?
And will gv_flag be still available in update rule?
thanx
hiza
Message was edited by:
Hiza
Message was edited by:
HizaHi,
I am just giving you a sample code which I had used
just try to read this will help you
PROGRAM UPDATE_ROUTINE.
$$ begin of global - insert your declaration only below this line -
TABLES: ...
DATA: ...
$$ end of global - insert your declaration only before this line -
The follow definition is new in the BW3.x
TYPES:
BEGIN OF DATA_PACKAGE_STRUCTURE.
INCLUDE STRUCTURE /BIC/CSZRINF001.
TYPES:
RECNO LIKE sy-tabix,
END OF DATA_PACKAGE_STRUCTURE.
DATA:
DATA_PACKAGE TYPE STANDARD TABLE OF DATA_PACKAGE_STRUCTURE
WITH HEADER LINE
WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.
FORM startup
TABLES MONITOR STRUCTURE RSMONITOR "user defined monitoring
MONITOR_RECNO STRUCTURE RSMONITORS " monitoring with record n
DATA_PACKAGE STRUCTURE DATA_PACKAGE
USING RECORD_ALL LIKE SY-TABIX
SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
CHANGING ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
$$ begin of routine - insert your code only below this line -
fill the internal tables "MONITOR" and/or "MONITOR_RECNO",
to make monitor entries
break-point.loop at DATA_PACKAGE.if DATA_PACKAGE-/BIC/ZREMPID GE 5.delete DATA_PACKAGE.endif.endloop.
if abort is not equal zero, the update process will be canceled
ABORT = 0.
$$ end of routine - insert your code only before this line -
Regards
Rahul -
Sample code in Update Rule to restrict data selection?
We used to restrict data selection in InfoPackage data selection, e.g., for company code range when loading data from a source system (e.g. EBP which is similar to R3), but somehow the company code range we set in InfoPackage data selection not working and we found actually it occurs on the source system side when running RSA3 on EBP side and input the company code range in RSA3 selection section, but still it extracts data beyond the company code range. We don't understand why EBP data selection doesn't work, then we consider in update rule on BW to set the company code range. We know in update rule, we can select Start Routine, formula, or routine to set the company code range. But we would be appreciated if experts here can recommend which one is the most efficient to load data fast for data load performance reason and would be appreicated if you can let us know the sample code!
Thanks in advance!hi Hari,
I copy the whole code of the start routine below:
PROGRAM UPDATE_ROUTINE.
$$ begin of global - insert your declaration only below this line -
TABLES: ...
Includes to update generic objects
INCLUDE rsbctgn_top .
INCLUDE rsbctgn_update_rules .
INCLUDE rsbctbbp_generic_objects.
The following section is prepared for you if you compound
the business partner 0BPARTNER with the
Source System 0BBP_SYS_BP or if you compound the organizational
Unit 0ORGUNIT with the source System 0BBP_SYS_BP
TYPE-POOLS: RRSV.
Data: L_HLP_CHAVL_CMP TYPE RSCHAVL.
DATA:
L_S_DEP TYPE RRSV_S_DEP,
L_T_DEP TYPE RRSV_T_DEP.
End of compound
DATA: l_s_errorlog TYPE rssm_s_errorlog_int,
l_hlp_chavl TYPE rschavl.
$$ end of global - insert your declaration only before this line -
The follow definition is new in the BW3.x
TYPES:
BEGIN OF DATA_PACKAGE_STRUCTURE.
INCLUDE STRUCTURE /BIC/CS0BBP_CONF_TD_1.
TYPES:
RECNO LIKE sy-tabix,
END OF DATA_PACKAGE_STRUCTURE.
DATA:
DATA_PACKAGE TYPE STANDARD TABLE OF DATA_PACKAGE_STRUCTURE
WITH HEADER LINE
WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.
FORM startup
TABLES MONITOR STRUCTURE RSMONITOR "user defined monitoring
MONITOR_RECNO STRUCTURE RSMONITORS " monitoring with record n
DATA_PACKAGE STRUCTURE DATA_PACKAGE
USING RECORD_ALL LIKE SY-TABIX
SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
CHANGING ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
$$ begin of routine - insert your code only below this line -
fill the internal tables "MONITOR" and/or "MONITOR_RECNO",
to make monitor entries
delete data_package where 0comp_code < 'X300' OR 0comp_code > 'X6ZZ'.
if abort is not equal zero, the update process will be canceled
ABORT = 0.
$$ end of routine - insert your code only before this line -
ENDFORM. -
Can you please help fix this Update rule?
Hi,
I have a field (field1) in an ODS (ODS1) and the same field1 is also in ODS2.
Once ODS2 is loaded with data, I would like to populate the same field1 in ODS1 through the UPDATE RROUTINE.
So I went to ODS1 and in the update rules, selected field1, and selected the update method as Routine. I then assigned a name to the update routine and got the code below.
Can help me modify this code to fill the field field1 in the ODS1 if the following is true:
key1 in ODS1 = Key1 in ODS2 AND
key2 in ODS1 = Key2 in ODS2 AND
key3 in ODS1 = Key3 in ODS2 AND
key4 in ODS1 = Key4 in ODS2 AND
Otherwise leave the field blank.
PROGRAM UPDATE_ROUTINE.
$$ begin of global - insert your declaration only below this line -
TABLES: ...
DATA: ...
$$ end of global - insert your declaration only before this line -
FORM compute_data_field
TABLES MONITOR STRUCTURE RSMONITOR "user defined monitoring
USING COMM_STRUCTURE LIKE /BIC/Zaft_PPP
RECORD_NO LIKE SY-TABIX
RECORD_ALL LIKE SY-TABIX
SOURCE_SYSTEM LIKE TPSMMM-TSTSYS
CHANGING RESULT LIKE /BIC/ AABBTST00-field1
RETURNCODE LIKE SY-SUBRC "Do not use!
ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
$$ begin of routine - insert your code only below this line -
fill the internal table "MONITOR", to make monitor entries
result value of the routine
RESULT = .
if abort is not equal zero, the update process will be canceled
ABORT = 0.
$$ end of routine - insert your code only before this line -
ENDFORM.
ThanksHi,
Lv_field1 is a local variable to which you would be assigning the value of the field1 from ODS2. So thats the reason after assigning field1 value to lv_field1 it assigned to Result.
The select statement should be below the following:
FORM compute_data_field
TABLES MONITOR STRUCTURE RSMONITOR "user defined monitoring
USING COMM_STRUCTURE LIKE /BIC/Zaft_PPP
RECORD_NO LIKE SY-TABIX
RECORD_ALL LIKE SY-TABIX
SOURCE_SYSTEM LIKE TPSMMM-TSTSYS
CHANGING RESULT LIKE /BIC/ AABBTST00-field1
RETURNCODE LIKE SY-SUBRC "Do not use!
ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
$$ begin of routine - insert your code only below this line -
fill the internal table "MONITOR", to make monitor entries
<b>Select Statement</b>
result value of the routine
<b>RESULT = lv_field1</b>.
if abort is not equal zero, the update process will be canceled
ABORT = 0.
Also the table definition is for ODS2 from which you would be reading.
Regards,
Namrata -
Hello Friends,
We are in the process of upgrading SAP BW 3.0B to 3.5. I am not able to activate the update rule if I use any kind of formula in the newer version. It just activates fine for Constant, Routine etc. except Formula. Is this issue related to upgrade? Any solution to overcome this problem would be highly appreciated.
Thanks,
RajHi Asit,
You are on which system BW 3.5 or BW 7.0?
If you are on BW 7.0, there are various way of doing this.
1> Using DTP: If you have definite filter criteria while loading data from Infocube 1 and Infocube 2, you can use it in DTP.
for eg. while doing data loads, exclude records where material group is blank. While creating DTP, you can specify required filter criteria.
2> using start routine: You can use start routine as well to exclude all those records which you don't want to load to target infocube.
For eg. Delete all records from source package where case ids are blank.
use below statement to code it:
Delete source_package where <fieldname> = <some values>.
Regards,
Nilima -
User exit for update rule of info structure
Hi gurus,
Can anybody tell me how to implement a user exit of update rule for LIS info structure, for ex,S140.
Thanks
Eric xuThere is no user exit and we are not allowed to modify the update rules of the standard SAP info structures. However, you can create your own info structure with the same or similar configuration and then apply a formula or a requirement in the update definitions (MC25 transaction), as you please.
After that you can just turn off the update of S140 (in OMO1 transaction) and use your own info structure instead in MCSI transaction. -
Hi,
Does anyone know if there exists a report/program checking the syntax of update rules?
The purpose is to find out errors without parsing all existing routines.
Thxs.
Laurent Q.Hi Roberto,
The new thing brought by BW 3.5 in start routines is:
<i>$$ end of global - insert your declaration only before this line -
The follow definition is new in the BW3.x
TYPES:
BEGIN OF DATA_PACKAGE_STRUCTURE.
INCLUDE STRUCTURE /BIC/CS<b><DS name></b>.
TYPES:
RECNO LIKE sy-tabix,
END OF DATA_PACKAGE_STRUCTURE.
DATA:
DATA_PACKAGE TYPE STANDARD TABLE OF DATA_PACKAGE_STRUCTURE
WITH HEADER LINE
WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.
FORM startup
TABLES MONITOR STRUCTURE RSMONITOR "user defined monitoring
MONITOR_RECNO STRUCTURE RSMONITORS " monitoring with record n
DATA_PACKAGE STRUCTURE DATA_PACKAGE
USING RECORD_ALL LIKE SY-TABIX
SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
CHANGING ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
$$ begin of routine - insert your code only below this line -
</i>
I could find a fix to the resulting syntax errors (due to RECNO field - cf. note 547669).
BUT, my question is: <u>how to check the syntax of a whole bunch of update rules without editing them manually one after the other?</u>
Thxs Roberto.
LauQ -
Problem: Exchange rate in Update rules with DELTA mode
Hi experts,
During the loading since the ODS13BIL towards the CUBE, I use in the update rule the function
"CONVERT_TO_LOCAL_CURRENCY" to convert a currency.
The loading mode is DELTA.
If I modify an invoice in the system source (R/3) for example: "change on" (0CH_ON), during the loading delta since the ODS towards the cube, the exchange rate is reversed (sign), which implies that the values of the ratios during the conversion with the function module " CONVERT_TO_LOCAL_CURRENCY" are false.
How could I resolve this problem?
Example:
1-First load:
R/3:
Key figure 1 :100
Exchange Rate :-1,2
Document currency :USD
Local currency :EUR
Change on :00.00.0000
ODS13BIL:
Key figure 1 :100
Exchange Rate :-1,2
Document currency :USD
Local currency :EUR
Change on :#
CUBE:
Key figure 1 :100/1,2
Currency :EUR
2-Seconde load:
R/3:
Key figure 1 :100
Exchange Rate :-1,2
Document currency :USD
Local currency :EUR
Change on :06/01/2006
ODS13BIL:
Key figure 1 :100
Exchange Rate :-1,2
Document currency :USD
Local currency :EUR
Change on :06/01/2006
CUBE:
Key figure 1 :100/1,2
Currency :EUR
and
Key figure 1 :-100*1,2 <-- False
Currency :EUR
Thank you for your precious help.Hello,
Thank you for your answer but that still not works: Give erroneous data is corrected but the data which are not erroneous become erroneous.
I think that if I manage to return the field "Exchange misses" (0EXCHG_RATE) nonmodifiable by the DELTA mode, I cross that will resolve the problem.
With what is used following fields in the definition of the ODS, and it is what impacts it on the existing data: "Non cumulative value" et "Cumulative value"
thanks a lot.
Maybe you are looking for
-
Error while generating webservices using Date
I am facing the following problem while generating a web service which is having Date as one its members. I have serialized a class with the following DataStructure private String rowId1; private Date created; private String name; private String quot
-
Hi, I went to update my iphone using my itunes site, halfway through i got a message saying reset, make sure that your network is active and try again, the network connection is fine. it will not allow me acces to my phone unless a recovery is done.
-
My iphone 4s cannot join a public unsecured network, but my ipad and macbook can with no problems. I have reset the network settings on the iphone twice. Both times that fixed the problem but only for a few minutes, then I get the "cannot join netw
-
Sd card isnot recognized
-
Runtime Error R6034. Can someone help me?
I have a HP PC, operating on Windows Vista. After downloading the new "itunes Update" I can no longer open itunes. How do I fix this? The "Runtime Error R6034" says to contact application support team and I haven't been able to figure out how to do t