Custom Lock objects few question issues

Hello guys , i create a custom lock object for my z tables ( ZFISGC_MCFG )  which have 3 key field
MANDT
ID_EMPRESA
CL_MVTOSGC
now in my program doing testing i put a break point after the ENQUEUE_ of the lock object
then when i go to the sm30 and try modif the value of the entry using the same key i pass to the ENQUEUE_ fm i can modif and save the entry now i am now if that is the right workflow in custom object lock or if i am doing something wrong , this is how i can the enqueue FM:
call function 'ENQUEUE_EZFISGCOBJECT'
EXPORTING
   MODE_ZFISGC_MCFG       = 'E'
   MANDT                  = SY-MANDT
   ID_EMPRESA             = p_bukrs
*   X_ID_EMPRESA           = ' '
*   _SCOPE                 = '2'
*   _WAIT                  = ' '
*   _COLLECT               = ' '
EXCEPTIONS
   FOREIGN_LOCK           = 1
   SYSTEM_FAILURE         = 2
   OTHERS                 = 3
if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
Thanks

You have to remember that SAP locks are logical locks, not physical. This means that whatever you enqueue is not physically locked from changes. You have to ensure that any program that tries to update your table, first checks these locks and stops the update if it finds that it is already locked.
Rob

Similar Messages

  • Is Lock Object transportable to LIVE from development server?

    I had created a customized lock object on a customized table.
    I can only managed to save it to $ENQ package. I tried ZSD1 but no use.
    Now, since I am working in my development server, I had problem getting it across to my "LIVE" environment.
    Can it be transportable?
    I tried to change but no avail.
    Bye

    The lock object transportable is the one created with SE11, not the function modules and group generated.
    IdPgr  : R3TR
    Obj    : ENQU
    Object : Exxxxx
    Regards

  • Let me know creation of lock object

    let me know creation of lock object

    Hi
    <b>Lock Objects</b>
    Lock object concept
    Lock modes
    Creating a lock object (example)
    Lock object sample code
    SAP data dictionary provides you with a locking mechanism to synchronize simultaneous data access by different users.
    Lock objects are created in SE11.
    Customer lock objects must begin with EY or EZ .
    Three possible lock modes exist for lock objects.
    <b>Lock Mode</b>
    Lock mode E: This sets a lock for changing data for single user. This lock can be accumulated.
    Lock mode X: This mode is used like mode E for changing data. The only technical difference from mode E is that the respective lock does not allow accumulation.
    Lock mode S: This mode ensures that data displayed in your program cannot be changed by other users during the entire display time. Here you do not want to change the data yourself (allows read only access for data).
    <b>Creating Lock object</b>
    SE11
    1)Enter lock object name beginning with EY or EZ
    and hit create.
    2)Enter table names containing data records that should be locked and the lock mode.
    Enter short text /tbale/lockmode.
    3) The primary keys of the specified tables are automatically selected as lock parameters.
    It automatically selects the primary key for the selected table.
    To set a lock in the application program
    call a function module ENQUEUE_<LOCK_OBJECT>.
    For our example, it would be ENQUEUE_EZMARA.
    To release the lock in the application program
    call a function module DEQUEUE_<LOCK_OBJECT>.
    For our example, it would be DEQUEUE_EZMARA.
    Refer the code executed by user (say abap1) for
    matnr = ’000000000000000012’.
    Lock Objects are used to synchronize access to the same data by more than one user. Function modules that can be used in application programs are generated from the definition of a lock object in the ABAP Dictionary.
    The R/3 System synchronizes simultaneous access of several users to the same data records with a lock mechanism. When interactive transactions are programmed, locks are set and released by calling function modules .These function modules are automatically generated from the definition of lock objects in the ABAP Dictionary.
    Structure of a Lock Object
    The tables in which data records should be locked with a lock request are defined in a lock object together with their key fields.
    When tables are selected, one table (the primary table) is first selected. Further tables (secondary tables) can also be added using foreign key relationships.
    Lock Arguments
    The lock argument of a table in the lock object consists of the key fields of the table.
    The lock argument fields of a lock object are used as input parameters in the function modules for setting and removing locks generated from the lock object definition. When these function modules are called, the table rows to be locked or
    unlocked are specified by defining certain values in these fields.These values can also be generic. The lock argument fields therefore define which subset of the table rows should be locked
    Data Dictionary/ Lock Objects
    The simplest case of a lock object consists of exactly one table and the lock argument of the table is the primary key of this table. Several tables can also be included in a lock object. A lock request therefore can lock an entire logical
    object, and not only a record of a table. Such a logical object can be for example a document comprising an entry in a header table and N entries in a positiontable.
    Lock Mode
    The lock mode controls whether several users can access data records at the same time. The lock mode can be assigned separately for each table in the lock object. When the lock is set, the corresponding lock entry is stored in the
    lock table of the system for each table. Access by more than one user can be synchronized in the
    following ways:
    Exclusive lock: The locked data can only be displayed or
    edited by a single user. A request for another exclusive lock
    or for a
    shared lock is rejected.
    Shared lock: More than one user can access the locked data
    at the same time in display mode. A request for another
    shared lock is accepted, even if it comes from another user. An exclusive lock
    is rejected. Exclusive but not cumulative: Exclusive locks can be requested
    several times from the same transaction and are processed
    successively. In contrast, exclusive but not cumulative locks
    can be called only once from the same transaction. All other
    lock requests are rejected.
    1) Select object type Lock object in the initial screen of the ABAP Dictionary, enter an object name and choose Create. The name of a lock object should begin with an E (Enqueue).The maintenance screen for lock objects is displayed.
    2) Enter an explanatory short text in the field Short text. You can then use the short text to find the lock object at a later time, for example with the R/3 Repository Information System.
    3) Enter the name of the primary table of the lock object. All other tables in the lock object must be linked with the primary table using foreign keys.
    4) Select the lock mode of the primary table in the field below it The lock mode is used as the default value for the corresponding parameters of the function modules generated from the lock object.
    5) Choose Add if you want to lock records in more than one
    table with the lock object. A list of all the tables linked with the primary table using valid foreign keys is displayed. Select the appropriate table. The lock
    mode of the primary table is copied as lock mode. You can change this setting as required, for example you can assign the lock mode separately for each table.
    Similarly, you can add a table linked with the secondary table just added with foreign keys. To do this, place the cursor on the name of the secondary table and choose Add.
    If no lock mode is assigned to a table, no lock is set for the
    entries in this table when the generated function modules are
    called. You should not assign a lock mode if a secondary table
    was only used to define a path between the primary table and
    another secondary table with foreign keys.
    6) Save your entries.
    A dialog box appears in which you have to assign the lock
    object a development class.
    7) You can define whether the function modules generated from
    the lock object should be RFC-enabled on the Attributes tab
    page. If you set the Allow RFC flag, the generated function
    modules can be called from within another system with Remote
    Function Call. If you permit Remote Function Calls for an
    existing lock object, you must ensure that the generated
    function modules are called from within an ABAP program with
    parameters appropriate for the type. You should therefore check
    all programs that use the associated function modules before
    activating the lock object with the new option.
    8) Choose Activate
    <b>Reward if u sefull</b>

  • Lock object problem on custom table

    Hi all.
    I am having a bit of an issue with a lock object on a home made table. We're using the UWL and a custom IView to display an extended invoice. No problem releasing the workitem lock, just the table entry lock.
    I can see the lock in SM12. Tried dequeue/dequeue all RFCs from backend, no luck.
    The lock is set from a custom RFC. This RFC succesfully releases the lock when used in SAPGUI, and we have an RFC enabled wrapper around it. However, once used in the portal, the locks aren't released. My suspicion is that it has to do with sessions and I can't see a way to control that since dynpro uses a connection pool IIRC.
    Anyone have any ideas on how to solve this?

    Small correction if you are not aware. Do not create your custom tables in APPS schema? Custom tables are supposed to created in custom schema such as XXPO and a synonym created for the table in APPS schema.
    When creating an EO, you do not need to provide the schema name. You would need to enter only the table name.
    Hope this helps.

  • A few questions about common "issues" before buying New iPad

    I am hoping to pick up the new iPad in the next few weeks, however I have read up on some issues which I'd like some information on.
    I have been using my GF's iPad 2 a lot and I really love it, however I am dead set on buying the new one, I have become pretty resolution-spoilt by the awesome screen on the 4S and this is the primary factor in wanting this new model.
    With the following concerns, assuming that an iPad that I may buy might have one or more of them, could you please inform me of: any currently known official or unofficial fix, if the problem could most likely be resolved in an update or if it is likely that since the problem came to light that the later runs to be built were adjusted to avoid the problem? Thanks.
    OK- first up, the bad wifi problem that people have. This is the biggest concern to me, as I use wifi a lot and won't have access to 4G, and only occasionaly access to 3G.
    Secondly, the heating... OK this is not a deal breaker, I understand that it isn't a real problem however if it could be solved so that it runs almost as cool as the 2 that would be great.
    Thirdly, charge times and the extra hour over 100%... Again I do realise that these aren't so much issues as just the way that it works, however I would hope that now lots of people have complained, an update would adjust the display to be more accurate, to say 100% only when it has fully charged, purely because I would rather know... Or perhaps have 100% change colour on absolute 100%. The other thing, 7 hours charging, is there a more powerful adaptor that 1: reduces the charge time, and 2: if you are using a powerdrinking app while charging, will actualy continue charging rather than just slowing the battery drain (I read that some apps will keep draining battery while on charge).
    finaly, I have read about screen hue problems, this wont be too much of a problem, as I will be able to check this in store to be sure that the screen is nice, colour balanced and free of dead pixels, I will compare it to my GFs iPad 2 and also the iPhone 4, because I know that the iPad 2 is supposed to look a little more blue to give it a cold feel, while the new model and the iPhone 4S have a slightly yellowed screen for warmth, it's just that lots of people have complained about theres' being too yellow.
    Thanks very much for any useful info on this.

    What are all the differences between the iPad 3rd Gen and the iPad 2? Is the iPad 2 worth the cost savings?
    http://everymac.com/systems/apple/ipad/ipad-faq/differences-between-ipad-3rd-gen -2012-ipad-2-2011.html
    What are all the differences between the iPad 3rd Gen models? Which should I buy?
    http://everymac.com/systems/apple/ipad/ipad-faq/differences-between-ipad-3rd-gen -early-2012-models.html
    Should I Buy a New iPad? Or an iPad 2?
    http://www.maclife.com/article/blogs/should_i_buy_new_ipad_or_ipad_2
    iPad Q&A
    http://www.everymac.com/systems/apple/ipad/ipad-faq/differences-between-ipad-3rd -gen-early-2012-models.html
    A Few Questions (and Answers) About the New iPad
    http://pogue.blogs.nytimes.com/2012/03/15/a-few-questions-and-answers-about-the-   new-ipad/?ref=personaltechemail&nl=technology&emc=edit_ct_20120315
    New iPad: A Polishing of the Old
    http://www.nytimes.com/2012/03/15/technology/personaltech/the-new-ipad-is-much-t he-same-only-better.html?nl=technology&emc=edit_ct_20120315
    iPad 1, 2 and New Specifications
    http://www.everymac.com/systems/apple/ipad/index-ipad-specs.html
    If you think you may get an iPad 2:
    Refurbished iPad Prices
    http://store.apple.com/us/browse/home/specialdeals/ipad
    New 16GB iPad 2 Prices
    http://store.apple.com/us/browse/home/shop_ipad/family/ipad/select_ipad2
    A lot of the posts about lack of charging is because iPad "3" users are trying to use an iPod charger, iPhone charger or connected to their computer where they get the "Not Charging" indication. A few others had a defective charger that was replaced by Apple. It remotely possible that a few iPads have defective batteries or charging circuits.
    Many of the wifi connection problems are related to the users brand of wireless routers, the router setup, or the need to select a different wireless channel due to interference.
    The high temp problem seems to be when users are charging AND running games with intensive graphics. The display on the new iPad takes a lot more power than the iPad 2 display.
    Overall I would guess that the chance of a defective iPad is less than 1%.
     Cheers, Tom

  • Few questions about customizing jwm

    Hello all,
    Coming from KDE, I found jwm and it runs so much better on this circa 2008 laptop. KDE runs OK but this is a lot faster. I have familiarized myself with .jwmrc and how to make basic changes and I've come across a few questions.
    1.) Is there any way to enable dragging and rearranging the open programs in the taskbar? I'm kind of OCD about the order of my running apps especially since restarting jwm after edits to the config file puts them in a random order.
    2.) I think I see a way to get programs to start maximized and such using Groups but is there a way to start a program with a specific size? Specifically I am referring to nedit - it always starts too small and I size it so be larger but not overlapping my conky.
    3.) Relating to #2, is there any way to get all programs to remember their window's size and position upon restarting? This has been a pet peeve of mine for years and KDE has the ability to remember this but most other Linux DEs and WMs don't.
    4.) I've been using slock to lock the screen but I need to run it manually. Is there any way to get slock to run automatically, ie after say 5 minutes of inactivity? As of now I've been using xscreensaver to power off the monitor - should I just use the "Lock screen" option here? I've been trying to keep this install as minimal as possible - I don't need a screensaver, just ideally to turn off the monitor and lock the screen after some time.

    1) I don't think you can - you can however disable the jwm taskbar and use xfce4-panel or similar.
    2/3) Devilspie
    4) xautolock

  • Lock Objects Problem while updating entries in custom table

    Hi Friends,
    Iam updating a custom table ztable from internal table entries.
    ie : Modify ZTABLE from table ITAB.
    Now the entries are updating and inserting perfectly..
    But my problem is i need to use lock objects before doing this..
    I have created a lock obect EZTABLE with all th ekey fields of the table.. ie : it has 2 key fields
    item & matnr .
    Now how to use lock objects here.. do i need to loop the internal table and use enque & deque function module each and every time in loop or use it out side the loop..
    Can any one explain me this..
    Regards,
    Kumar

    hi kumar,
    **check if the equipment is already locked by user, if yes, trigger a mail
                CALL FUNCTION 'ENQUEUE_EIEQUI'
                 EXPORTING
                MODE_EQUI            = 'E'
                MANDT                = SY-MANDT
                   equnr                = lv_equi_temp
                X_EQUNR              = ' '
                _SCOPE               = '2'
                _WAIT                = ' '
                _COLLECT             = ' '
                 EXCEPTIONS
                   foreign_lock         = 1
                   system_failure       = 2
                   OTHERS               = 3.
                IF sy-subrc <> 0.
                  lv_subrc1 =  sy-subrc.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
                ELSE.
                  CALL FUNCTION 'DEQUEUE_EIEQUI'
                   EXPORTING
                MODE_EQUI       = 'E'
                MANDT           = SY-MANDT
                     equnr           =  lv_equi_temp
                X_EQUNR         = ' '
                _SCOPE          = '3'
                _SYNCHRON       = ' '
                _COLLECT        = ' '
                ENDIF.
    try like this to check if the object is locked....
    u can also use
    call function 'ENQUEUE,.
    do the needful changes update the database then commit work
    then call function 'DEQUEUE'
    hope this helps,
    tanmaya

  • Lock object issue

    Dear Experts,
    We are using the fn. Module "SD_SALES_DOCUMENT_ENQUEUE", to process a sales order with multi line item and to unlock the table, we are using "DEQUEUE_ALL", but for some reason, in the sales order processing when the system comes to next line item, the lock object is throwing an error, I'm not sure if this is due to the lock not being released on the order.
    1st item success
    2nd item failure
    3rd item success
    4th item failureu2026.not always the same pattern, but usually.
    Please suggest .
    Thanks
    -Amit

    Hi Zekeriya,
    I have tried with the query you mentioned but didnt get any output.STILL THE PROBLEM PERSISTS...
    SQL> select s1.username || '@' || s1.machine
    || ' ( SID=' || s1.sid || ' ) is blocking '
    || s2.username || '@' || s2.machine || ' ( SID=' || s2.sid || ' ) ' AS blocking_status
    from v$lock l1, v$session s1, v$lock l2, v$session s2
    where s1.sid=l1.sid and s2.sid=l2.sid
    and l1.BLOCK=1 and l2.request > 0
    and l1.id1 = l2.id1
    and l2.id2 = l2.id2 ; 2 3 4 5 6 7 8
    no rows selected

  • ColdFusion 11: custom serialisers. More questions than answers

    G'day:
    I am reposting this from my blog ("ColdFusion 11: custom serialisers. More questions than answers") at the suggestion of Adobe support:
    @dacCfml @ColdFusion Can you post your queries at http://t.co/8UF4uCajTC for all cfclient and mobile queries.— Anit Kumar Panda (@anitkumar85) April 29, 2014
    This particular question is not regarding <cfclient>, hence posting it on the regular forum, not on the mobile-specific one as Anit suggested. I have edited this in places to remove language that will be deemed inappropriate by the censors here. Changes I have made are in [square brackets]. The forums software here has broken some of the styling, but so be it.
    G'day:
    I've been wanting to write an article about the new custom serialiser one can have in ColdFusion 11, but having looked at it I have more questions than I have answers, so I have put it off. But, equally, I have no place to ask the questions, so I'm stymied. So I figured I'd write an article covering my initial questions. Maybe someone can answer then.
    ColdFusion 11 has added the notion of a custom serialiser a website can have (docs: "Support for pluggable serializer and deserializer"). The idea is that whilst Adobe can dictate the serialisation rules for its own data types, it cannot sensibly infer how a CFC instance might get serialised: as each CFC represents a different data "schema", there is no "one size fits all" approach to handling it. So this is where the custom serialiser comes in. Kind of. If it wasn't a bit rubbish. Here's my exploration thusfar.
    One can specify a custom serialiser by adding a setting to Application.cfc:
    component {     this.name = "serialiser01";     this.customSerializer="Serialiser"; }
    In this case the value - Serialiser - is the name of a CFC, eg:
    // Serialiser.cfccomponent {     public function canSerialize(){         logArgs(args=arguments, from=getFunctionCalledName());         return true;     }     public function canDeserialize(){         logArgs(args=arguments, from=getFunctionCalledName());         return true;     }     public function serialize(){         logArgs(args=arguments, from=getFunctionCalledName());         return "SERIALISED";     }     public function deserialize(){         logArgs(args=arguments, from=getFunctionCalledName());         return "DESERIALISED";     }     private function logArgs(required struct args, required string from){         var dumpFile = getDirectoryFromPath(getCurrentTemplatePath()) & "dump_#from#.html";         if (fileExists(dumpFile)){             fileDelete(dumpFile);         }         writeDump(var=args, label=from, output=dumpFile, format="html");     } }
    This CFC needs to implement four methods:
    canSerialize() - indicates whether something can be serialised by the serialiser;
    canDeserialize() - indicates whether something can be deserialised by the serialiser;
    serialize() - the function used to serialise something
    deserialize() - the function used to deserialise something
    I'm being purposely vague on those functions for a reason. I'll get to that.
    The first [issue] in the implementation here is that for the custom serialisation to work, all four of those methods must be implemented in the serisalisation CFC. So common sense would dictate that a way to enforce that would be to require the CFC to implement an interface. That's what interfaces are for. Now I know people will argue the merit of having interfaces in CFML, but I don't really give a [monkey's] about that: CFML has interfaces, and this is what they're for. So when one specifies the serialiser in Application.cfc and it doesn't fulfil the interface requirement, it should error. Right then. When one specifies the inappropriate tool for the job. What instead happens is if the functions are omitted, one will get erratic behaviour in the application, through to outright errors when ColdFusion goes to call the functions and cannot find it. EG: if I have canSerialize() but no serialize() method, CF will error when it comes to serialise something:
    JSON serialization failure: Unable to serialize to JSON.
    Reason : The method serialize was not found in component C:/wwwroot/scribble/shared/git/blogExamples/coldfusion/CF11/customerserialiser/Serialiser .cfc.
    The error occurred inC:/wwwroot/scribble/shared/git/blogExamples/coldfusion/CF11/customerserialiser/testBasic.c fm: line 4
    2 : o = new Basic();
    3 :
    4 : serialised = serializeJson(o);5 : writeDump([serialised]);
    6 :
    Note that the error comes when I go to serialise something, not when ColdFusion is told about the serialiser in the first place. This is just lazy/thoughtless implementation on the part of Adobe. It invites bugs, and is just sloppy.
    The second [issue] follows immediately on from this.
    Given my sample serialiser above, I then run this test code to examine some stuff:
    o = new Basic(); serialised = serializeJson(o); writeDump([serialised]); deserialised = deserializeJson(serialised); writeDump([deserialised]);
    So all I'm doing is using (de)serializeJson() as a baseline to see how the functions work. here's Basic.cfc, btw:
    component { }
    And the test output:
    array
    1
    SERIALISED
    array
    1
    DESERIALISED
    This is as one would expect. OK, so that "works". But now... you'll've noted I am logging the arguments each of the serialisation methods receives, as I got.
    Here's the arguments passed to canSerialize():
    canSerialize - struct
    1
    XML
    My reaction to that is: "[WTH]?" Why is canSerialize() being passed the string "XML" when I'm trying to serialise an object of type Basic.cfc?
    Here's the docs for canSerialize() (from the page I linked to earlier):
    CanSerialize - Returns a boolean value and takes the "Accept Type" of the request as the argument. You can return true if you want the customserialzer to serialize the data to the passed argument type.
    Again, back to "[WTH]?" What's the "Accept type" of the request? And what the hell has the request got to do with a call to serializeJson()? You might think that "Accept type" references some HTTP header or something, but there is no "Accept type" header in the HTTP spec (that I can find: "Hypertext Transfer Protocol -- HTTP/1.1: 14 Header Field Definitions"). There's an "Accept" header (in this case: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"), and other ones like "Accept-Encoding", "Accept-Language"... but none of which contain a value of "XML". Even if there was... how would it be relevant to the question as to whether a Basic.cfc instance can be serialised? Raised as bug: 3750730.
    serialize() gets more sensible arguments:
    serialize - struct
    1
    https://www.blogger.com/nullserialize - component scribble.shared.git.blogExamples.coldfusion.CF11.customerserialiser.Basic
    2
    JSON
    So the first is the object to serialise (which surely should be part of the question canSerialize() is supposed to ask, and the format to serialise to. Cool.
    canDeserialize() is passed this:
    canDeserialize - struct
    1
    JSON
    I guess it's because it's being called from deserializeJson(), so it's legit to expect the input value is indeed JSON. Fair enough. (Note: I'm not actually passing it JSON, but that's beside the point here).
    And deserialize() is passed this:
    deserialize - struct
    1
    SERIALISED
    2
    JSON
    3
    [empty string]
    The first argument is the value to work on, and the second is the type of deserialisation to do. I have no idea what the third argument is for, and it's not mentioned directly or indirectly on that docs page. So dunno what the story is there.
    The next issue isn't a code-oriented one, but an implementation one: how the hell are we expected to work with this?
    The only way to work here is for each function to have a long array of IF/ELSEIF statements which somehow identify each object type that is serialisable, and then return true from canSerialise(), or in the case of serialize(), go ahead and do the serialisation. So this means this one CFC needs to know about everything which can be serialised in the entire application. Talk about a failure in "separation of concerns".
    You know the best way of determining if an object can be seriaslised? Ask it! Don't rely on something else needing to know. This can be achieved very easily in one of two ways:
    Check to see if the object implements a "Serializable" interface, which requires a serialize() method to exist.
    Or simply take the duck-typing approach: if a CFC implements a serialize() method: it can be serialised. By calling that method. Job done.
    Either approach would work fine, keeps things nicely encapsulated, and I see merits in both. And either make far more sense than Adobe's approach. Which is like something from the "OO Failures Special Needs" class.
    Deserialisation is trickier. Because it relies on somehow working out how to deserialise() an object. I'm not sure of the best approach here, but - again - how to deserialise something should be as close to the thing needing deserialisation as possible. IE: something in the serialised data itself which can be used to bootstrap the process.
    This could simply be a matter of specifying a CFC type at a known place in the serialised data. EG: Adobe stipulates that if the serialised data is JSON, and at the top level of the JSON is a key eg: type, and the value is an extant CFC... use that CFC's deserialize() method. Or it could look for an object which contains a type and a method, or whatever. But Adobe can specify a contract there.
    The only place I see a centralised CFC being relevant here is for a mechanism for handling serialised data that is neither a ColdFusion internal type, nor identifiable as above. In this case, perhaps they could provide a mechanism for a serialisation router, which basically has a bunch of routes (if/elseifs if need be) which contains logic as to how to work out how to deserialise the data. But it should not be the actual deserialiser, it should simply have the mechanism to find out how to do it. This is actually pretty much the same in operation as the deserialize() approach in the current implementation, but it doesn't need the canDeserialize() method (it can return false at the end of the routing), and it doesn't need to know about serialising. And also it's not the main mechanism to do the deserialisation, it's just the fall back if the prescribed approach hasn't been used.
    TBH, this still sounds a bit jerry-built, and I'm open for better suggestions. This is probably a well-trod subject in other languages, so it might be worth looking at how the likes of Groovy, Ruby or even PHP (eek!) achieve this.
    There's still another issue with the current approach. And this demonstrates that the Adobe guys don't actually work with either CFML applications or even modern websites. This approach only works for a single, stand-alone website (like how we might have done in 2001). What if I'm not in the business of building websites, but I build applications such as FW/1 or ColdBox or the like? Or any sort of "helper" application. They cannot use the current Adobe implementation of the customserializer. Why? Because the serialisation code needs to be in a website-specific CFC. There's no way for Luis to implement a custom serialiser in ColdBox (for example), and then have it work for someone using ColdBox. Because it relies on either editing Application.cfc to specify a different CFC, or editing the existing customSerializer CFC. Neither of which are very good solutions. This should have been immediately apparent to the Adobe engineer(s) implementing this stuff had they actually had any experience with modern web applications (which generally aren't just a single monolithic site, but an aggregation of various other sub applications). Equally, I know it's not a case of having thought about this and [I'm just missing something], because when I asked them the other day, at first they didn't even get what I was asking, but when I clarified were just like "oh yeah... um... err... yeah, you can't do that. We'll... have to... ah yeah". This has been raised as bug 3750731.
    So I declare the intent here valid, but the implementation to be more alpha- / pre-release- quality, not release-ready.
    Still: it could be easily deprecated and rework fairly easily. I've raised this as bug 3750732.
    Or am I missing something?
    Adam

    Yes, you can easily add additional questions to the Lookup.WebClient.Questions Lookup to allow some additional choices. We have added quite a few additional choices, we have noticed that removing them once people have selected them causes some errors.
    You can also customize the required number of questions to select when each user sets them up as well as the number required to be correct to reset the password, these options are in the System Configuration settings.
    If you need multi-language versions of the questions, you will also need to modify the appropriate language resource file in the xlWebApp.war file to provide the necessary translations for the values entered into the Lookup.

  • How to add custom authorization object to a SAP standard transaction

    Hi All,
    I have a standard tcode IW22 (change PM Notification) and I would lock changing when some users modify the field Functional Location (field TPLNR).
    Since this field does not have an authorization object associated, I've tried to solve this problem with the following steps:
    - tcode SU20 - creation of new authorization field TPLNR with data element TPLNR
    - tcode SU21 - creation of  a new auth object in transaction SU21 with name ZPM and field (TPLNR, ACTVT and TCOD)
    - tcode SU24 - insert of new authorization field e check indicator (green)
    - tcode SU22 - check indicator - check (green)
    After this we have created a new role with PFCG and add transaction IW22; the new auth.ZPM was added manually.
    We have try to analyze log (ST01 trace) but it seems no check was made in the trace file.
    It seems new authorization object was not checked.
    My question is: "Is it possible to add a custom authorization object into standard transaction and implementing authorization check without writing abap code in exit or badi ?"
    Thanks
    Maurizio

    > My question is: "Is it possible to add a custom authorization object into standard transaction and implementing authorization check without writing abap code in exit or badi ?"
    >
    No .. not possible. The list of Auth. objects SAP proposed in SU24 for each Stnd. SAP TCodes are basically documentation of the Authority-Checks in the program for that TCode. The extra advantage of SU24 is to set the object status (means the proposal for availability in PFCG) among any of the four check indicators. So that we can provide our own value (customer specific values which are basically defined and separate from sap provided values) and reinforce the authorization concept of the organization.
    So you need to provide a Authority-Check for ZPM in the program of IW22 to make sure that the fields you want to be checked are really being checked during execution of the tcode.
    Regards,
    Dipanjan

  • EBS 12.1.3: a few questions about cloning

    Hi,
    We have EBS 12.1.3 on AIX 7.1.
    A few questions about cloning from shared application tier environment to non-shared application tier environment. We have been following "Cloning Oracle Applications Release 12 with Rapid Clone [ID 406982.1]"
    Source environment (shared app tier):
    - Two active application nodes and LB
    - One active database and one passive database setup with Oracle Data Guard.
    - SSL termination at the load balancer
    - PCP implemented
    Target environment (non-shared app tier):
    - One active application node
    - One active database node
    - No SSL
    - No PCP
    After the cloning was completed we noticed the following problems in the target system:
    1) Home page cannot be accessed as application tier $CONTEXT_FILE still contains "https" and ssl termination settings.
    Workaround:
    Modify (with text editor) Application Tier $CONTEXT_FILE as follows.
    <webentryurlprotocol oa_var="s_webentryurlprotocol" customized="yes">http</webentryurlprotocol>
    <sslterminator oa_var="s_enable_sslterminator">#</sslterminator>
    <login_page oa_var="s_login_page" customized="yes">http://myhost.mydomain.com:8000/OA_HTML/AppsLogin</login_page>
    <externURL oa_var="s_external_url" customized="yes">http://myhost.mydomain.com:8000</externURL>
    Run AutoConfig and start application tier.
    Is there a better and supported solution for this?
    2) Concurrent managers do not work correctly as they have still old node names (used in PCP in the source system). Workaround used:
    1. Logon to EBS web GUI and remove all nodes from all concurrent managers.
    2. Shutdown application tier. Verify that all concurrent managers have been shutdown. If not, kill the processes manually
    3. As apps user run cmclean.sql
    4. Restart application tier
    Is there a better solution for this?
    3) Database changes from ARCHIVELOG mode to nonarchivelog mode in the target system. Is there anyway to prevent this?
    4) Also, we would like to perform a full clone (app + db tiers) from production without shutting down the application. Is this possible? What would be the best documents to describe this? In Production, we have Oracle Data Guard setup with physical standby as per "Oracle Tech Note: Business Continuity for Oracle E-Business Release 12 Using Oracle 11g Physical Standby Database [ID 1070033.1]". This can be used when performing a hot clone for the database, right? What about the application tier? Steps described in 406982.1 include running AutoConfig in which application tier should be down. Does the application need to be down when running "Maintain Snapshot Information"?
    5) One final question (not related to cloning). Oracle Enterprise Manager console webUI has recently stopped working in IE8. E.g. https://myhost.mydomain.com:5501/em gives "Page cannot be displayed". This was working correctly last week. In Firefox, the same link is working fine. Any ideas how to fix this?
    Thanks for your answers in advance.
    BR,
    TH

    1) Home page cannot be accessed as application tier $CONTEXT_FILE still contains "https" and ssl termination settings.
    Workaround:
    Modify (with text editor) Application Tier $CONTEXT_FILE as follows.
    <webentryurlprotocol oa_var="s_webentryurlprotocol" customized="yes">http</webentryurlprotocol>
    <sslterminator oa_var="s_enable_sslterminator">#</sslterminator>
    <login_page oa_var="s_login_page" customized="yes">http://myhost.mydomain.com:8000/OA_HTML/AppsLogin</login_page>
    <externURL oa_var="s_external_url" customized="yes">http://myhost.mydomain.com:8000</externURL>
    Run AutoConfig and start application tier.
    Is there a better and supported solution for this?No, you need to edit the context file manually and run AutoConfig.
    2) Concurrent managers do not work correctly as they have still old node names (used in PCP in the source system). Workaround used:
    1. Logon to EBS web GUI and remove all nodes from all concurrent managers.
    2. Shutdown application tier. Verify that all concurrent managers have been shutdown. If not, kill the processes manually
    3. As apps user run cmclean.sql
    4. Restart application tier
    Is there a better solution for this?You are following the best approach. You could update the node details from the backend if you want.
    3) Database changes from ARCHIVELOG mode to nonarchivelog mode in the target system. Is there anyway to prevent this?By default, Rapid Clone will create the target database in noarchivelog mode.
    4) Also, we would like to perform a full clone (app + db tiers) from production without shutting down the application. Is this possible? What would be the best documents to describe this? In Production, we have Oracle Data Guard setup with physical standby as per "Oracle Tech Note: Business Continuity for Oracle E-Business Release 12 Using Oracle 11g Physical Standby Database [ID 1070033.1]". This can be used when performing a hot clone for the database, right? Correct.
    What about the application tier? Steps described in 406982.1 include running AutoConfig in which application tier should be down. Does the application need to be down when running "Maintain Snapshot Information"?You can copy the application tier node files while the application is up. And, you do not need to shutdown the application to run "Maintain Snapshot Information".
    5) One final question (not related to cloning). Oracle Enterprise Manager console webUI has recently stopped working in IE8. E.g. https://myhost.mydomain.com:5501/em gives "Page cannot be displayed". This was working correctly last week. In Firefox, the same link is working fine. Any ideas how to fix this?
    If it is working from one browser, then it should not be an EM issue. Have you tried from a different client and see if this works? Have you changed any setting in your IE browser? Please make sure you add the EM URL to the trusted sites list.
    Thanks,
    Hussein

  • W540 Questions & Issues

    Hi Folks,
    Questions & Issues:
    1.  Where is the Break key on the W540?
    2.  My W540 locks up about once every two days - there does not appear to be any common task that causes this.  When it lock nothing works, not Ctrl+Alt+Del, I must power off with the power button.  Any comments or suggestions?
    Observations:
    I'm not a fan of the new keyboard.  For example, the F1..F12 keys are difficult to read (the F parts, not the pictures) and the off center feel leads to difficult typing (at least for me). 
    TIA

    Hi SD
    1. Try Fn+B for Break
    Refer to this post for more information.
    1.2.
    2. Go to Start > Lenovo > System Update. Install all Critical and Recommended Updates.
    3. If No.2 does not work, go to Task Manager > Startup > Try uncheck a few which is optional. Do not uncheck Lenovo Stuffs and Antivirus.
    Peter
    ThinkPad W520 | ThinkCentre E73 SFF | IdeaPad K1 | IdeaPad Yoga 11s | Miix 2 10" | 3000 Y300
    Give kudos to reward people for their assistance | Mark thread solved if the solution works | Please do not send me an e-mail regarding technical questions | I am not an Lenovo employee
    =====================================
    Dolby ; IdeaPad Slate Tablet

  • HR custom authorization objects

    Is it possible to have more than one custom HR authorization object active at the same time? For example if I need 2 custom variations of P_ORGINCON (I  have some very complex requirements),  is that possible, or am I limited to just 1? Having more than 1 seems to present a problem when I run RPUACG00 to generate include MPAUTCON. It overlys the code generated fo the first cusom object with code for the second object, therefore only allowing cgenerated code to exist for 1 of the objects.
    And one additional question - when I create a custom HR object (one which contains infotype, subtype, persg, persk etc), am  I limitied to only using fields from PA0001 in that object?  If I include some other field that does not exist on PA0001, when I run RPUACG00 it gives me the error "Field xxx is not allowed  in authorization object Z_xxx".
    Many thanks,
        Mike

    One example of a  requiremnet I have is for a manager to have 3 different types  of authority based on when a position was in his org structure. So if a position is currently in his org structure he might have WRITE access to their infotype 2,6,8... for positions that were in his org strucure between 1 and 60 days ago (but are not in his structure as of today) he might have WRITE access to their infotype 2 and 6 and READ access to other infotypes, and for people that were in his structure 61-9999 days ago, he might have only READ  access to all the position's infotype data.
    I was thinking of using 3 disctinct HR authorization objects to cover each of these 3 scenarios, but ran into the issue mentioned above with the generation program RPUACG00.

  • Enqueue: Elem.lock 0 contains unpermitted lock mode /. lock object

    Hello All,
    SCM 5.0 system which is upgraded from 4.1:
    System log entries contains:
    <b>Enqueue: Elem.lock 0 contains unpermitted lock mode /. lock object /sapapo/E</b>
    Work process log file contains :
    LOG GE8===>0 /sapapo/E_MATLOC
    I have gone through few notes like  606425, 447242.( lower version)
    From which I came to the conclusion that it is program error.
    Also group GE and No:8 What does it mean?
    Please let  me know your thoughts.Thanks.
    Regards,
    Tushar
    Message was edited by:
            Tushar Chavan
    Message was edited by:
            Tushar Chavan

    Hi,
    I found one more note :
    Note 891372 - Lock entries for TemSe obj remain after completion of proc
    The issue looks pretty similar. I think the notes you found are better suited for sap apo.
    Log a call with SAP and check what they have to say.
    Regards,
    Siddhesh

  • Locking objects across RFC calls

    Hi All,
    I am developing a business application using SAP UI5 and the NetWeaver Service Gateway in an embedded scenario. I have RFCs build for the backend interaction. As per my knowledge, each RFC is considered as a separate transaction and the user is logged on and off as the RFC is processed. This removes the lock on the object that I need to be sustained till the next RFC call. Unlocking the object exposes it to possible editing by other users which is not desirable.
    From what I have studied from this community, there are, by and large, two solutions
    1. Custom Lock Table
    2. Checking if the status of the object  is the same during the second RFC call, and going ahead only if it was unchanged.
    However, I am looking for more credible solution to this problem and would like to know how someone who experienced this issue have handled it.
    Thanks in advance,
    Neelesh

    Hi Jacob
    S_RFC and S_SERVICE This two authorization is nedded while calling RFC module from R3.
    first of all test the module in R3. create a role using PFCG assign the tcode. su53 (authorization check) and also assign the S_RFC and S_SERVICE to role.
    now test the RFC function module with this role in R3.
    if u give any warning/error due to authorization. imediate run tcode su53 in same session or new session
    i.e /nsu53 or /osu53.
    look which authorization is missing for a object.
    assign the relevant object and authorization to role.
    any query revert back.
    regards,
    kaushal

Maybe you are looking for