Default logic issue

Hello friends,
Here is the scenario:
I am using logic by in default - Datasrc and time dimensions. There is one specific data src COD that calls logic CODCall.lgf. Now CODcall.lgf has 2 include statements:
*INCLUDE AFCST.LGF
*INCLUDE FCBDGT.LGF
AFCST runs fine when data is being loaded through data manager package, but FCBDGT wont work. Any suggestions on why?

Hi,
The purpose of the INCLUDE ABC.LGF statement is to copy the code from the script in ABC to the calling script. So, if ABC is working fine, your calling script should also be fine.
You need to check the code in ABC to see if there is any problem in that logic.
Hope this helps.

Similar Messages

  • Defaulting logic in entity create method

    Hi
    As suggested by BC4J I use the create method of my entity object to insert defaulting logic for some attributes. The code looks like this:
    protected void create(AttributeList attributeList)
    super.create(attributeList);
    Number seqNumber = new Number();
    SequenceImpl s = new SequenceImpl("REV_SEQ", getDBTransaction());
    seqNumber = s.getSequenceNumber();
    setRevId(seqNumber);
    setCreationDate(SamUtils.getSystemDate());
    ApplicationModule am = getDBTransaction().getRootApplicationModule();
    if (am instanceof SecuredApplicationModule)
    setUsrId(((MyApplicationModule) am).getUsrId());
    But executing this code results in an Exception: "JBO-25014: Other User has changed the Row". If I remove the code between the lines above everything works ok.
    My questions are:
    - Is it ok to use set-Methods in the entity create method? Or should I set my default values to the "attributeList" instead?
    - do you think it is a problem to use the ApplicationModule as shown? I should mention that am.getUsrId() simply returns a previously stored variable and does not perform any queries or alike.
    Thanks for your help
    Frank Brandstetter

    It's definitely fine to setAttributes - I've done it myself (but not using "specific" setters).
    I haven't used the built-insequences before - this bit of your code looks a bit wasteful in terms of object creation, but that's obviously not your issue....
    It looks fine to use an application module in such a way; I coded a "current user id" function on mine too.
    I actually suspect the date-attribute, since I (me again!) had some "concurrent user" problems too. The issue was the fact that a Java date is accurate to the millisecond, and the database storage and retrieval wasn't. (I wasn't using Oracle so I'm not sure how it goes there....) A "concurrent user" exception gets thrown when bc4j goes to update an entity and finds that the date-value in the object doesn't match the "rounded" one it retrieves (as a check, just before it does the update - this is the optimistic locking) from the database. [So does the error occur only when you've saved the new entity once, then update it and try to save it again?]
    I got around it by setting the millisecond portion of any dates I used to zero (since the "storage" was accurate to a second) - so you might try that. (Did it generically in prepareForDML in my own Entity superclass, I think.)
    Otherwise, try setting the attribute, but not in the create method, and seeing if you get the same problem...
    HTH
    Mike.

  • Default Logic Script, Appears to Run when It should not

    Hello Experts,
    I need help with something.  When using a Logic Script within the Default Logic in BPC, It runs everytime data is submitted.   I have one logic script that copies a "Full-year" value input to each month.  See below.  So WHEN AuditTrail CC_FY is changed, it copies the value divided by 12 to each month and Audittrail CC.  This works correctly.  However, an issue came up that when a user wants to change the monthly Value, it defaults back to the value written by the CC_FY Logic Script.  I think the Logic script is running again after the user makes a change.  Below is the Logic Script and some other screen shots.
    CC_FY.LGF (Also inside DEFAULT>LGF)
    *XDIM_MEMBERSET AUDITTRAIL = CC_FY
    *XDIM_MEMBERSET RPTCURRENCY = LC
    *XDIM_MEMBERSET RCOST_CENTER = RCCA_NONE
    *XDIM_MEMBERSET TIME = 2015.12
    *XDIM_MEMBERSET COST_CENTER = %COST_CENTER_SET%
    *XDIM_MEMBERSET ACCOUNT = %ACCOUNT_SET%
    *WHEN AUDITTRAIL
    *IS CC_FY
    *WHEN TIME
    *is 2015.12
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.01", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.02", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.03", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.04", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.05", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.06", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.07", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.08", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.09", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.10", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.11", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.12", AUDITTRAIL = "CC")
    *ENDWHEN
    *ENDWHEN
    For Example, I enter $12,000 into December, CC_FY, it puts $1,000 into each month for CC correctly
    So then I try to Change January to $250, Save Data
    The Value then Returns to $1000.  I think its because the CC_FY.LGF is running again, but it shouldn't because there was no Change to the CC_FY AuditTrail Dimension.  On the Backend, you can see the changes, and also the reversal of the change, leaving the starting amount $1000.
    What am I missing?!   Thank you for any input.
    Sean

    The script have to be something like:
    *WHEN RPTCURRENCY
    *IS LC
    *WHEN RCOST_CENTER
    *IS RCCA_NONE
    *WHEN AUDITTRAIL
    *IS CC_FY
    *WHEN TIME
    *is 2015.12
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.01", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.02", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.03", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.04", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.05", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.06", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.07", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.08", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.09", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.10", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.11", AUDITTRAIL = "CC")
    *REC(EXPRESSION=%VALUE%/12, TIME = "2015.12", AUDITTRAIL = "CC")
    *ENDWHEN
    *ENDWHEN
    *ENDWHEN
    *ENDWHEN
    Without any *XDIM_MEMBERSET!
    Vadim

  • Finding "Default Logical System Name Model Instance" in DC Project

    Hi,
    While Creating an Adaptive RFCModel, one defines the
    Default Logical System Name for Model Instance & the
    Default Logical System Name for RFCMetadata.
    In which file can I find these settings at a later stage in the Project File Structure.
    Ofcourse, I can view them in the WedynproContentAdministrator under the Jco Destinations.
    But is there anyway to access them in the NWDS?
    Regards
    MK

    Hello MK,
    You'll find the Logical System Names of the JCo destinations in the file ".wdproperties" under the project structure.
    Bala

  • Internal table logic issue

    Hi All,
    I have one logical issue related to internal table manipulation.
    I have one internal table :
    I_DAT - This is related to Loading/Unloading of Goods.
    for example with 3 fields
    VSTEL, KUNNA, KMMANG.
    Now suppose my data looks like this after sorting:
    VSTEL   KUNNA    KMMANG
    100       -        -
    200       -        -
    300       -        -
    400       -        -
    -         500      X
    -         600      X
    -         700      X
    -         800      X
    Here 100,200,300,400 are Loading points.
    ANd 500,600,700,800 are unloading points.
    Now what i want is For loading & Unloading points i need to pick up Address and print one after other.
    But how they need to print is:
    FOR INITIAL LOADING OF
    ADDRESS- For 100
    FIRST STOP: FOR LOADING OF
    ADDRESS- For 200
    SECOND STOP: FOR LOADING OF
    ADDRESS- For 300
    Etc .....
    Then
    FOR UNLOADING OF:
    ADDRESS- For 400
    FIRST STOP: FOR UNLOADING OF
    etc.
    FINAL STOP: FOR FINAL UNLOADING OF
    We might get as many records :
    Can any body give me the logic:
    Printing Address is not a problem:
    But Above every address we need to print FIRST STOP, SECOND etc like that.
    For this i need logic.
    Can anybody give the solution!
    Thanks in advance.
    Thanks & Regards,
    Prasad.

    Try this.I think you want output like this......
    DATA: BEGIN OF LINE,
            CARRID   TYPE SBOOK-CARRID,
            CONNID   TYPE SBOOK-CONNID,
            FLDATE   TYPE SBOOK-FLDATE,
            CUSTTYPE TYPE SBOOK-CUSTTYPE,
            CLASS    TYPE SBOOK-CLASS,
            BOOKID   TYPE SBOOK-BOOKID,
          END OF LINE.
    DATA ITAB LIKE SORTED TABLE OF LINE WITH UNIQUE KEY TABLE LINE.
    SELECT CARRID CONNID FLDATE CUSTTYPE CLASS BOOKID
           FROM SBOOK INTO CORRESPONDING FIELDS OF TABLE ITAB.
    LOOP AT ITAB INTO LINE.
      AT FIRST.
        WRITE / 'List of Bookings'.
        ULINE.
      ENDAT.
        AT NEW CARRID.
          WRITE: / 'Carrid:', LINE-CARRID.
        ENDAT.
          AT NEW CONNID.
            WRITE: / 'Connid:', LINE-CONNID.
          ENDAT.
            AT NEW FLDATE.
              WRITE: / 'Fldate:', LINE-FLDATE.
            ENDAT.
              AT NEW CUSTTYPE.
                WRITE: / 'Custtype:', LINE-CUSTTYPE.
              ENDAT.
                   WRITE: / LINE-BOOKID, LINE-CLASS.
                AT END OF CLASS.
                  ULINE.
                ENDAT.
    ENDLOOP.
    This is also helpful......
    LOOP AT <itab>.
      AT FIRST. ... ENDAT.
        AT NEW <f1>. ...... ENDAT.
          AT NEW <f2 >. ...... ENDAT.
              <single line processing>
          AT END OF <f2>. ... ENDAT.
        AT END OF <f1>. ... ENDAT.
      AT LAST. .... ENDAT.
    ENDLOOP.
    Regards
    Abhishek

  • Default logical system names for application and metadata in models.

    hi,
    I have a dbt in web dynpro java. When we create a model, we give the logical system names. When our developement is over, do we have to change these names because in test system and subsequently production system, the backends will be oviously different than developement ?
    how do we change them and re import after changing? in abap we cant change our code in test and prod systems right  so how is it in web dynpro java ?
    thanks

    Hi Jeschael,
    thanks for the reponse.
    When I create the model, I give the default logical system names and on the next screen I give the
    ip address of the backend system, client , login, password etc
    Even though the logical system names wud be same in Dev, Test and Prod systems, the ip address, login password is different so how do I give it ?
    thanks
    B

  • Multiple script logics in default logic... can you control execution ?

    Hi Gurus,
    My default logic consists of two .LGF files both of which do two different Logics functions e.g. A and B
    For one input template when the user saves the data I would like Logic A be run and not Logic B.
    For the second input template I would like the Logic B to be executed and not Logic A.
    Is there a way to achieve this ?
    thanks

    Hi Daniel,
    The point is that his question not seems related to the data itself but to the screen, maybe a special operation for a screen?
    First scenario where the data itself have the reference of the operation. He might be then be able to distinguish even in a scriptlogic.
    Second scenario: The calculation is driven by the screen itself. Then he have several oportunities.
              1) Add extra information if possible in one unused dimension for the purpose of this calculation and use this information to distinguish the operation
              2) trigger the calculation on the default script logic of another application and bypass the calculation with a change of destination_app
              3) In a routing schema in a BADI you will still need to implement one of the two above points or as you know drive the operations through the dimension file ;).
    Best regards,
    Philippe
    Edited by: Martin, Philippe on Mar 30, 2010 3:45 PM

  • Multiple Script Logics in Default Logic.. order of execution... Commit

    Hi,
    I have a situation where I need to perform two activities...
    i) Perform a multiplication operation on the data input by the user - Script Logic A
    ii) Send the data at a summary level to another application. - Script Logic B
    Both Script logics are in the Default Logic
    User opens an input template and makes changes to a few Products (more than 1). I want the script logicA to execute completely (i.e. for all the models) and THEN Script Logic B to execute since Script Logic B summarises the data
    It seems like this is not how the system works.. Rather it goes thru Script Logic A and Script LogicB for the 1st Product, then the 2nd Product and so on...
    I tried using a commit after Script Logic A / before Script logic B and a few other options but to no avail... Any suggestions ???
    The other option is not to put Script Logic B in the Default Logic but to execute it separately... Worse case situation I'll use that option..
    thanks

    Hi,
    Have you defined the scope of the product for the two logics independently.
    Try that by including commit after the first logic. This should work.
    *XDIM_MEMBERSET PRODUCT=BAS(ALL)
    Script 1
    *COMMIT
    *XDIM_MEMBERSET PRODUCT=BAS(ALL)
    Script 2
    *COMMIT
    Hope this helps,
    Regards,
    G.Vijaya Kumar

  • Using %DIM_SET% in default logic

    I have the following logic:
    *SELECT(%TIMESTART%,"CURRENT_PERIOD","SCENARIO","ID='%SCENARIO_SET%'")
    *SELECT(%TIMEROLLING%,"ID","TIME","ID in(select top 6 ID from mbrtime where timeid>=(Select timeid from mbrTime where id='%TIMESTART%') order by timeid)")
    *XDIM_MEMBERSET TIME =%TIMEROLLING%
    *WHEN ACCOUNT_GP
    *IS FC_EOT1NN_P
    *REC(FACTOR=1,ACCOUNT_GP=FC_EOT1NN,TIME=%TIMEROLLING%)
    *ENDWHEN
    *COMMIT
    When I run this logic from datamanager using SSIS package it works fine.
    When I run this logic using default logic, nothing happens.
    How is it possible to use %SCENARIO_SET% (or any other dimension settings which should be dynamically selected) in default logic?
    Kind regards,
    Tim Vierhout
    Edited by: Tim Vierhout on Jan 5, 2010 12:52 PM

    Tim,
    Those SET variable is generated at Data Manager server DLL so if you run it as a default logic, those varibale will not be generated. That's why it doesn't work.
    Thank you
    Regards,
    James Lim

  • Changing Default logical system names of a model.

    Hi
        How could i change the
         Default logical system name for model instances:
         Default logical syatem name for RFC metadata:
        values for existing model? without recreating the model.
         Thanx

    Hi shah kond,
    you can change  rfc destinations of model in 2 differnet ways.
    firs one: right clcik on project
              from the context menu select propeties
              it will open a dialogbox from that select dynpro references then click on jco references tab
    by using add and remove buttons u can add and remove joc destnations
    2.expand ur model class double click output class.now seelct properties view.there u can change the jco destination
    hope this will use ful for u
    Regards
    Naidu

  • Changing the default logical system names for adaptive RFC models

    Hello,
    When I create an Adaptive RFC model the dialog that asks me to specify the model name, package, source folder, etc. has default values in the "Default logical system name for model instances" and "... RFC metadata".
    I know I can type in another name there but I'd like to change the default name to something that fits our naming conventions. Can I change that? If so, can someone tell me where?
    Thanks in advance!
    David.

    Suresh,
    Thank you for your response. However, that is not what I was looking for. Sorry if my post was not clear.
    I knew that I could change it AFTER the import. I also know that I can type in something else besides the default DURING the import.
    What I am asking is if there is a way to change some configuration setting so that the 'default' that comes up in the drop down DURING the import is something different than what comes 'out-of-the-box' with NWDS.
    Hope that clears up what I'm looking for.
    David.
    Message was edited by:
            David Z. Pantich

  • Error in Executing Default Logic

    Hi,
    I included a formula in default logic which is a simple multiplication of two account dimension members:
    *BEGIN
    [P_ACCT].[#CE0004220] = [P_ACCT].[CE0004210]*[P_ACCT].[CE0004230]
    *END
    Was able to successfully validate and save the logic. However, when I tried to send data, the system threw an error:
    "- Error Message -
    Error running default logic (Error checking work status)
              - Rejected record List -
    Error converting records: The root element is missing."
    Have checked the work status and nothing seems to be amiss. Also, I tried removing the formula from the default logic and then sending the data - this worked.
    So there must be some error with the default logic / work status. Could someone please help me out here?
    Thanks in advance
    Regards,
    Meiyalagan
    Edited by: Meiyalagan Kulandaivel on Nov 27, 2008 10:06 AM

    Hi Meiyalagan,
    Can you please indicate which BPC release you are using ?
    I would suggest that you first make the following 2 corrections on your formula:
    1. Add a "#" to the member on the left of the equal sign
    2. Put square brackets around the dimension and member names
    [P_ACCT].[#CE0004220] = [P_ACCT].[CE0004210]*[P_ACCT].[CE0004230]
    After that, you also may need to setup your workstatus. There are two places where you can defined workstatus.
    1. On the application set level, you define a list of the status (like unlocked, submitted, approved, locked, ...) and who is allowed to do what (like that only the manager is allowed to post journal for example)
    2. On the application, you indicate which dimension are used to set that workstatus (usually the combination category / entity / time is used to set and track these workstatus)
    In the Entity (or the dimension you have the OWNER property), you defined the owner of that entity (can also be a list of user or a team). Each owner of a parent is considered as a manager of that entity. If I for example own the entity France, the owner of the Entity Europe will be considered as my manager (as well as the owner of the Entity World). The settings Owner and Manager are used in the Work Status table on the application set, to define who can do which task and who is allowed to change the workstatus (promote it to the next status).
    Regards,
    Marcel

  • Dynamic re-scoping of default logic

    Hi all,
    I'm hoping someone can help on this logic problem -- BPC 5.1 SP5 on SQL 2005.
    My sales planning application has a dimension SKU with 20,000 members, in a very well structured hierarchy. Each SKU is at level 6, and the profit centers are at level 5.
    The default logic calculates sales & cogs amounts (unit * price for each SKU) as well as some discounts (which are planned at the profit center, not SKU level). There is a dummy base member for each profit center to store these discount rates.
    My problem in the default logic is to expand the SKU dim scope
    - when a profit-center driver changes, expand to include all SKUs in that profit center
    - when a SKU quantity or price changes, expand to include the profit-center dummy member
    - and of course, some times a user changes values for not just one, but many, profit centers & SKUs in a single data submission.
    A SKU.ProfitCenter property flags all the relevant members to pick up, but I can't figure out how to do this in default logic. (Batch logic with *SELECTs is not a problem.)
    Option 1. Use a *RUNLOGIC calling SecondLogic.LGF file, with a *SELECT inside -- this doesn't seem to work. The debug log shows that the SKU scope remains the same as the data submission, and it appears that the *SELECT is not being performed in SecondLogic.
    Option 2. Use a *RUNLOGIC calling SecondLogic.LGX, as follows:
    *RUNLOGIC
    *DIMENSION SKU=filter([SKU].members,[SKU].properties("ProfitCenter"=[SKU].CurrentMember.Properties("ProfitCenter")))
    *LOGIC=SecondLogic
    *ENDRUNLOGIC
    I was hoping that would work, but I get an error message after data submission:
    ExecuteBaseLogic::user has no write access to the selected members of dimension : SKU
    SKU dimension is secured R/W, but my user ID has write access to all members (confirmed in my ability to submit data, plus acsSKU table).
    I even simplified this to hard-code a particular profit center, but still the same error:
    *RUNLOGIC
    *DIMENSION SKU=filter([SKU].members,[SKU].properties("PROFITCENTER"="500143"))
    *LOGIC=SecondLogic
    *ENDRUNLOGIC
    I'd appreciate any tips on how to use this MDX filtering, or any other approach that gives this type of dynamic re-scoping in default logic.
    Thanks,
    Tim

    Hi Tim,
    You are missing  a bracket in your examples, after the name of the property (bracket should be closed)
    I used the following statement in an *XDIM_MEMBERSET and it is working fine. I have a also a .CurrentMember, not sure if this one makes any difference.
    Filter([Time].Members,[Time].CurrentMember.Properties("TIMEID")="20071200")
    Regards,
    Marcel

  • Default Logic for Intercompany Elimination (USELIM)

    Dear Friends,
    I am doing the Intercompany elimination for Management consolidation. I have configured the Entity and Intco and also maintained the "ELIMACC"  property in the account dimension. Also i have manintaied the ICELIM.LGF where the following code is been maintained
    *RUN_PROGRAM US_ELIM
    CATEGORY = %C_CATEGORY_SET%
    TID_RA = %TIME_SET%
    OTHER = ENTITY=%ENTITY_SET%
    *ENDRUN_PROGRAM
    do i need to maintain any thing else in the default logic of my application. I have not maintained any Business rules, is it mandatory to maintain the same?. Please suggest me. ( I have no currency convertion since input and reporting is in USD only.)
    I tried running the "IC Elimination" package with the sofar done setting am getting the Package  status as 'Cancelled'
    Thanks
    Prem

    Group dimension is mandatory to add.

  • Can we run 3 logics at a time through Default logic?

    Hi,
    I would like to run 3 script logics through Default logic at a time.  I mean
    all the 3 logics should run, when I import the data through DM.  Is it possible
    to run 3 logics at a time?
    Thanks in advance.
    Regards,
    B.S.RAGHU

    Hi,
    This is possible. You just have to use the INCLUDE statement in your default logic (INCLUDE FXtrans.lgl for example), and then save and validate both logic scripts.
    If you have to launch a logic in another application, by passing it some parameters for example, you can of course use RUNLOGIC statement, as said in the above thread. But the easiest way is to use INCLUDE.
    Hope this will help.
    Best Regards,
    Patrick

Maybe you are looking for

  • Physical page is not the same in HTML format

    I am using Oracle 6i to develop some reports. While running this reports using the developer, the logical page is the same size as the physical page. When generating the same reports in HTML format the physical pages do not seem to be the same as the

  • I have imovie 9 and want to know how to fade in to a clip???

    Just want to know something simple like how the heck do you fade into a clip or a title? I see nothing that does that? Like Fade from black into the beginning of my movie??

  • " java.lang.NoSuchMethodError" by stub

    Hi All, On changing beans business methods return type and input parameter, on deployement the stub gives the follwoing error " java.lang.NoSuchMethodError" . Regards, Vishal Doshi

  • Using a text field as well as a display as text field on a form

    I have a text field that a user will enter in an employee id and from there it will populate a display as text field with their first and last name. I am trying to accomplish this using a javascript process but can not get the name to display. This d

  • Formatting current document- x2 A4 sheets into 1 A3 sheet

    Hey guys so i completed a document for a university design project where i need to create like an a4 flip book made by an a3 sheet if that makes any sense, so its just a single a3 sheet that i will print double sided (ends up being 4 A4 pages). Now t