Global attribute wierdness

I am running across some unexplainable behavior with Global attributes.
I have a simple field form and a update workflow. When I check out the user view, it correctly populates all my form fields with the current values. I'm using a simple "userView.accounts[LDAP].gid" format for each field. No problems there. The problem is if I change a value on the form, then pass to a checkinView in the workflow.
<Action id='1' application='com.waveset.session.WorkflowServices'>
<Argument name='op' value='checkinView'/>
<Argument name='view' value='$(userView)'/>
</Action>
The updates are not propogated. Using debug, I find in the passed view that the accounts[LDAP].gid has the correct value, but the userView.global.gid has the old value. Furthermore, it is intermittent. Some globals only have null, and it still isn't being updated. The waveset.accounts[LDAP].attributes.gid has the old value as expect.
If I add the following just prior to the check in, then every thing is okay. This seems wasteful, and I do not want to have to enumerate through every possible field in order to populate global, and I eventually may have the need to assign slightly different values to different resources.
<set name='userView.global.gid'>
<ref>userView.accounts[LDAP].gid</ref>
</set>
Straight from the manual it says namespace "accounts": Stores the read/write copies of the account attributes. Updatable fields should point to this namespace.
Has anyone else experienced this and how have you overcome the problem?
Thanks in advance,
Jeremy

Oh I see. Sorry, I misread your original posting. I've had a sort of similar issue with globals but it involved the global name space being populated with data from one resource (of my five) in a different order than in other cases. In the majority of cases the global name space was loaded from the first resource that contained the attribute but because I have five resources the order of the resources as enumerated by IDM mattered.
For example, if the attribute was called "uname" and IDM loaded my resources in the order of "R1, R2, R3, R4, R5" and uname was only available as attributes on R3 and R4 then global.uname was effectively the same as accounts[R3].uname since it was the first in the list. This meant that by using the global name space R3 was the authoritative resource for the attribute "uname". The problem I had was every now and then IDM would load in the resources in the wrong or a different order. In very rare cases it would load them in "R1, R2, R4, R3, R5". This meant that if there was ever a mis-match between the uname attribute between R4 and R3 (that is if the uname attribute on R4 was "old" and the uname attribute on R3 was "new") then the "old" value was getting pushed in to the global name space (since R4 was first) and thus into all resources that supported "uname". So it's similar to what you're experiencing though not quite the same.
I'm just speculating... "gid" might be one of those reserved attribute names that you shouldn't use. Just like "accountId" and "password" are one of those attribute names you just shouldn't use since it conflicts with IDMs own internal data structures. That might also be what's biting you. (Of course it's not terribly well documented which ones you should avoid.) My best practice has been to prefix all attribute on a resource with a short resource name or code. (Eg. "LDAP_gid", or "AD_gid" or "myresource_gid" rather than just "gid".) But this effectively kills the global name space since each attribute has a unique name across all resource.
So, having written all of that, your solution looks like the only way out unfortunately.  :( It's also what I end up typically doing. I determine which resource is authoritative and then use that resource to set the values for all other resources that support the attribute using the accounts[] name space as well as the global name space. (With the global name space set last.) In a form I'll have large blocks of expansions setting the field value of the attribute and in a workflow it will be contained within a single action statement's block expression.
It's what I call "superstitious" code. It might be overkill but having been bitten by it enough times I always do it now.

Similar Messages

  • Local attributes - global attributes tradeoff

    Hi, MDM experts.
    Can you, please, share your experience on business partners repository modeling.
    I build custom business partners repository. While creating it I came to a question - whether local system attributes of business partner should be modelled in that repository?
    Intrinsic attributes like Full Name, State Identity Number and so on should be definitely modeled. Attributes specific to our organization but those that span many of our systems should also be modeled I think.
    But what's about some specific attributes that are relevant only for one of the systems being integrated? To be concrete, imagine we have SAP ERP system as one of the systems in landscape and such attribute of our business partner as 'Purchasing organization'. In our case this table is SAP ERP specific and none of our other systems have such entity in their data model.
    <b>The question is - is it reasonable to have local system attributes and lookup tables implemented in central MDM repository?</b>
    If yes then isn't our repository going to be overloaded with all that local attributes and lookup tables of every client system?
    If no, then how should process of central creation of business partner look like? The problem is in this case Creator won't be be able to assign all attributes he would like to and he will have to login to each of local system and assign these values after central creation. Moreover, client systems can refuse to create new record automatically in case some of attributes are missing. For example such situation is typical for Idoc inbound processing .
    Have you any suggestions on streamlining the data model and BP central creation process ?
    Regards,
    Vadim Kalabin

    Hi vadim,
    These are my thoughts on your issue.
    I feel both the attributes should find place in the same repository.
    This is not going to overload the system. In some typical MDM Implementation the volume of Main table records will very huge and the Local and global attributes will only occupy a less share only on the total records.
    Also the practice is that MDM DB Server and the core server runs separately.
    Pl find if this Article is use for you.
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d0d8aa53-b11d-2a10-aca2-ff2bd42a8692">MDM Data modelling do's and dont's</a>
    Regards,
    Vijay

  • Global attributes

    Hi there!
    I´m starting to work with IDM and I have some basic doubts. For example: for using global attributes... Do we have to define it? Do the attribute have to be present in all resources?
    Another cuestion is the population of the user view from SAP. I would like to know the simplest way to do and test it.
    My problem is than I just had an complex enviroment and I only have self-formation I could get with sun docs... but it´s so extense that I haven´t yet a good vision of main process.
    Thanks and regards.

    Global attributes do not have to be present in all resources. But resources that have a mapping for the attribute will use the value. So if you write something to "global.firstname", every resource (including Lighthouse), will be updated.
    This is for writing. For reading the value and displaying it, I use the following field syntax:
    <Field name='global.firstname'>
      <Default>
          <ref>attributes[Lighthouse].firstname</ref>
       </Default>
    </Field>

  • Global attributes AP_INVOICE table

    What is the use of Global Attributes in AP_INVOICE table?
    TRM says its reserved for country specific functionality. Can someone give a real-time example on its usage?

    Could you please clarify as what you mean by reference column ?
    If you are not going to do any updates to that column it should be fine.
    If you plan to insert some values and AP is not implemented for any of the localization for your case you might do so, but its not advisable. I would suggest you go for the DFF columns attribute1 to attribute30.

  • Global attributes in a template project

    Hello folks,
    We are setting up a demo of global template functionalites in SM. In the template project we have created we need advice on how to go about with the following.
    1) What do the attributes - global, local, harmonized etc.mean from a businesss perspective. The help documentation provided by SAP is not clear enough. Can someone share their practical expericence regarding this.
    2) In the project structure created - on what criteria should the project/business team set the appropriate global attribute.
    3) What is the effect of setting up of this global attributes - should any implementation projects created in the future has to refer the master template proj.
    Probably I am asking quite a lot but the questions seem to be related .
    Thank you.
    ^
    Mark

    Hi Mark,
    First of all, it is advised to use this functionality only if you foresee a case of 'active' rollout based projects leveraging these templates. If, a Template Project is created merely to hold an inventory of process definitions, with future usage only as a 'possibility', you need not activate the 'Global Rollout' functionality and attend to the decision making on it at a much later date, when necessity arises. This is not something mandatory to take up right upfront, unless there is a case for it.
    1) In terms of practical use in project, I have rarely come across projects which have sought to use the whole range of these attributes; I have been using SolMan since May 2004 and since those days, the usual ones I have had a need to use are at extreme ends of the spectrum - Global or Initial. All those in between vary in their nuances and normally not as much missed ! In early days (SolMan 3.1, there weren't as many varieties).
    With regard to the specific ways in which these vary,
    [this link|http://help.sap.com/saphelp_sm40/helpdata/en/45/5af1f3e5f81dece10000000a155369/content.htm] in SAP Online help is the best source to find how these attributes impact. Of course, you may have already seen this.
    2) The Project Team should have one main consideration - whether to control the structure and content of a delivered scenario centrally or to allow some changes at local rollout level. Accordingly, set the attribute and pass on the same attributes to all layers below that node in one stroke (if the attribute is to remain the same for all contents underneath)
    3) The effect is in 'changeability' or the flexibility to adapt the scenario borrowed from Template to suit local rollout/implementation needs.  For instance, if the Global Template team has spent thousands of man hours in coming up with a Finance scenario that's Sarbanes-Oxley compliance or GRC proofed, with all local requirements already fed into the Template, it makes sense to define the Scenario or Process as 'Global' and expect all rollouts to make use of it exactly the same way.
    If, on the other hand, there is a CRM/ SCM scenario on optimising Order fulfilment, an Asia-Pacific plant rollout may considerably differ in process steps from North American and such scenarios/ processes can be Initial or Local
    Trust this helps.
    Regards,
    Srini

  • Declaring and accessing custom global attributes of component controller

    Hi,
    I want to declare some global attributes for Component Controller and initialize them in WdDoInit() method.
    I have declared them under Component Controller --> Attributes tab --> after wd_context and wd_this (say G_MESSAGE).
    However,  when I am trying to set them in wdDoInit() method, I get compilation error saying G_MYMESSAGE is unknown and its not defined using data statement.
    How do I access these attributes?
    Thanks and regards,
    Amey

    Hello Amey,
    You need to access the variable by "wd_this->g_mymessage"
    Since wd_this attribute in each controller refers to interface of local controller. you could read the description of that attribute in attribute tab.
    Regards
    Anurag Chopra

  • Display entity-attributes and global-attributes in the same screen

    Hi,
    I have a question about entity.
    Is it possible to display in the same screen, entity-attributes and global-attributes?
    thanks
    Rosalia

    Hi Rosalia,
    You can only display attributes from the current entity and the entity or entities that it is contained by (the parent entities).
    So if you had the following data model
    Global
    ..the person
    ...the income
    the person is contained by global.
    the income is contained by the person (which is contained by global).
    If you want to create a person-level question screen, you can display global attributes on that screen by using subsitution like %global_field_1%. You cannot, however, input global attributes on that screen (ONLY attributes belonging to the person)
    If you want to create an income-level question screen, you can display attributes from the person such as "tell us about %person_name%'s income..." as well as global attributes. Again, you cannot input person or global attributes on that screen (ONLY attributes belonging to the income)
    However it only works from child-to-parent containment relationships! You cannot have a global question screen which loops through the person instances and displays attributes from the person, or from the income out-of-the-box.
    We have managed to implement this using custom controls.
    You can map individual attributes back up to the parent level, and then display them,
    such as
    the first person's name = InstanceValueIf(the people, the person's name, the person's id = 1)
    the first person's name is now a global attribute and can be displayed on global question screens.
    Hope this helps!
    Ben

  • Reading global attributes from implementation class

    Hi,
    How to access
                    global attributes of implementation class
                             from getter method of context node class.
    Thanks in advance,
    Srinivas.

    Hi Srinivasa,
    Access the view controller using attribute
    owner
    , Then you can access the global attributes.
    Regards,
    Masood Imrani S.

  • Access global attribute in webdynpro component?

    Hi all i have 2 webdynpro components
    Comp1
    Comp2
    Now i have declared a global attribute in comp1 in component controller.
    I have embedded both component together to share values
    I want to change the global attribute of comp1 from comp2
    Let me know how to proceed.
    Thanks

    There are different ways you can accomplish this. Using an interface method as Jitendra Yadav mentioned above is one. Another way, you can define an interface node in comp1 component controller. This node will be visible in comp2 (provided you declared comp1 usage in comp2). Then, you can set values of all of the interface node's elements.

  • How to call global attribute in .htm page in sap crm

    hi friends,
    in the class i have  created a global attribute . i want to access this global attribute in .htm page of the view . how to call this attribute in .htm  please send me the syntax .
    thanks and regards,
    sashi

    hi,
    I have accessed the global attribute in .htm page . I have declare a local variable and pass the global attribute value to local variable.
    Here I put a validation for hiding the field . If the data is not available in the field then only I have to hide the field. For this I have written the code. For your reference,
    <%
    DATA : lv_exprevenue TYPE STRING.
    DATA : lr_entity TYPE REF TO if_bol_bo_property_access.
    *lv_exprevenue = ZL_BT111H_O_DETAILS_IMPL=>gv_dref.
    *lv_exprevenue =  controller->gv_dref.
    lr_entity ?= BTOpportH->collection_wrapper->GET_CURRENT( ).
    CALL METHOD lr_entity->GET_PROPERTY_AS_STRING
    EXPORTING
       IV_ATTR_NAME = 'EXP_REVENUE'
    RECEIVING
          RV_RESULT         = lv_exprevenue.
    IF lv_exprevenue is NOT INITIAL.
    exit.
    else.
    data: lv_xml type string.
    lv_xml = controller->CONFIGURATION_DESCR->GET_CONFIG_DATA( ).
    replace all occurrences of '//BTOPPORTH/EXPREVENUE' in lv_xml with ''.
    ENDIF.
    %>
    <chtmlb:config displayMode = "<%= controller->view_group_context->is_view_in_display_mode( controller ) %>"
                    xml     = "<%= lv_xml %>"
                   mode        = "RUNTIME" />
    But the entire view is being hidden in WEB UI.
    Please Let me know if there is any mistake in the above code or I have write code some where else.
    Thanks & Regards,
    Sashi
    Edited by: skancharla on Nov 2, 2011 2:09 PM

  • Global Attributes to be considered for Material Master

    Hello Experts,
    I am working on Material Consolidation in MDM where in I have to consolidate the Material master from three different SAP systems in SAP MDM then harmonize the data back to each of these ECC systems. Centralization using portal will follow once this is done.
    All the mentioned ECC systems are three entirely different business working independently
    To define the enterprise data model there are two questions for which I am looking for answers based on Best practises standpoint and with your experiences in MDM projects
    Question 1: Is it a good practice to maintain Plant, Sales org, Purchase org and Classification data and other Local data in SAP MDM  Material repository for all the three ECCsystems. I understand this would unnecessarily load the repositoryu. But still looking for your experiences to explore whether there is any business benefit to do this.
    Question 2: Let's assume that we maintain only the Global attributes in SAP MDM for material repository then in that case , how do we define the material at global level. From my standpoint Material Global repository should have following fields which would uniquely define the material
    (Material Description, Base unit of Measure, Material Type, Industry Sector, Alternative Unit of Measure, Material Group)
    Is it the right approach or should I consider some other attributes as well?
    Moreover If I define these as Global Attributes then these definitions will have to imposed on the all the three ECC systems which would be a major change as all of the three have different definitions for the abovementioned attributes.
    Request your valuable inputs on what should feasible and practical best approach.
    Best Regards
    Manoj

    Hi Manoj,
    This is something which comes to every consultants mind
    See this is something very abstract and answer can vary from case to case depending on many parameters like :
    1.Client/Businessrequirement.
    2.Scenario requirement.(CMDM,Consolidation etc)
    3.System Landscape.
    4.Performance.
    5.Product capability.
    And many more.
    In my experience I have had a material scenario with only one ERP system having and only one company code.Clients requirement was to have most of the plant related data into MDM as it was a CMDM scenario.So I did take most of the views into MDM system including Location Data,Valuation data,Quality data,Classification data and Sales Data.It worked well there.
    However I was a part of another project where we had multiple ERP systems in landscape.It had multiple company codes and client wanted to keep only global data in MDM,after going into ERP system plant relevant data was populated.
    So it totally depends and one only has to take a informed decision,I would suggest you prepare a attribute analysis matrix of fields global in nature and then after understanding the relation between fields take a call on data model.
    Please go through these links for more help:
    https://websmp207.sap-ag.de/~sapidb/011000358700000059312011E
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f00877e8-b8a9-2b10-d981-c7ece74917fc?quicklink=index&overridelayout=true
    http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/70b0caa1-92e5-2c10-c687-a8d05e778e59
    Thanks,
    Ravi

  • Global Attribute/Element in OSM

    Hi All,
    I want to make few elements as Global attribute in OSM, not task based.
    --> Let say I have 4 Task, In task one I have allocated/reserved the resource 'X' for my task, but later at Task 3 I changed 'X" to "ABC".
    Now Revision order has come and my compensation is Undo then Do, so whenever I am going back to Task 1, there allocated resource is "X" only, which is already changed to "ABC".
    So please let me know how I can maintain that.
    Regards,
    N Singh

    Hi,
    This is OSM's behaviour and is working accordingly. Let me explain
    1)In Task 1, for one element lets say Element A you have entered value "X"
    2)In Task 3, you modified the element A's value to "ABC". Please notice, element A will still have value "X" stored on history but not visible.
    3)So, when you submit amendment, Task 3 will have "ABC" and will undo. <Fine, so far so good>
    4)In Task 1, Element A was processed with value "X" before, so, that value has to be undone too. Remember we have undone "ABC" before, so as "X" also has to be undone.
    Now, if you still want to achieve your mentioned scenario, then instead of changing the value from "X" -> "ABC" direclty as part of order process, you should raise an amendment and do it. Then everything will work as you expect above.
    Thanks
    Naveen Jabade

  • Global Attribute Usage in IMPL class

    Hi,
    Can I declare an attirbute in the IMPL class and use it in two different context nodes of the same component?
    Actually, my requirement is to retrieve the value of an attribute in CN1 and use it in the GET_I_ method of an attribute in CN2.
    The approach that I'm following is to retrieve the value of attib1, pass it into the global attribute, and then use this global attribute in GET_I_ method of attrib2 in CN2.
    Is this feasible?
    Any pointers to this would be highly appreciated.
    TIA.
    Regards,
    Richa

    Your approach is feasible !
    Thanks
    Allot points if this helps!

  • Modify a global attribute from a Resource Adapter

    I need to modify a global attribute (e.g.: firstname) from a Resource Adapter (e.g.: realCreate method).
    When I try to get the context (this.getContext()) it is always null.
    Any ideas please?
    Thx

    I get the context:
    LighthouseContext lighthouseContext = SessionFactory.getServerInternalContext();and modify a other user:
    WSUser wsUser = (WSUser)lighthouseContext.checkoutObject(Type.USER, "otherUser", null);
    wsUser.setAttribute("globalAttribute","myValue");
    lighthouseContext.checkinObject(wsUser, null);but I need to modify the current user, and he is locked by 'Configurator'.
    Any ideas?
    Thx

  • Setting a global attribute

    Can a global attribute be set from a child entity that is contained within the global entity?

    Yes, you need to ensure that conditions applied to the child entities will result in determining only one value for the global attribute (otherwise, uncertain will be the attribute's value). For example, "the household's oldest person" using the maximum age of the people in the household.

Maybe you are looking for

  • How to amend java source

    Hi. I'm relatively new to Java. I need to create a program wherein in each and every method of the code (e.g. protected void setDetails()), I have to insert at the very first line of the method a code like this one LOG.entering("setDetails") The "LOG

  • Layout for printing a book?

    Does a page ordering template exist for Pages for printing a book with two pages per side of 8X10 in. paper (printing both sides) so that the pages will be ordered correctly when the sheets are stacked, folded and stapled? I want to publish poetry ch

  • De-activate a crashed PSE8 / PRE8 installation?

    Dear community, I have one VISTA PC on which I run PSE8 and PRE8. Today I installed it on my (newer) Win7 PC too. All went fine. So I have two installations of both now. Some time later PSE8 on the Win7 PC claims a triple installation. I know I re-in

  • How to know the size of archived logs created under ASM

    I using Oracle 10g on Linux x86-64. I need to ship the archived logs(not the entire directory, only a few) from the Live database to the DR site, so I need an estimate of how much time it will take to ship them across the network ? Is there anyway I

  • Can i download this mac leopard free? if so how?

    i have a mac os x 10.4.11 but need upgrades for a lot of programs i want to download and cant get those because the computer isnt compatible... can i upgrade this whole thing? Thanks