Forms 5, 6, 7 API (d2f...)

Hello,
Can the API library of Forms 6 (ifd2f60.LIB) be used to manipulate Forms 5 .fmb files ?
Does the Forms 7 library support Forms 6 and 5 .fmb files ?
Where could I find a reasonable documentation of the API ?
Thanks
Andre

Hi Philipp
I agree to wait for your workaround only until tomorrow :-). Simply, now I'm in course for developers for SBO 2004 and I can to speak about it directly to SBO system developers. So everybody welcome to write here a questions about SBO2004 - it's a time.
Regards,
Mark

Similar Messages

  • How to get the identity claim encoding types of windows and forms authentication providers using API?

    Hi,
    We have to get all the claims providers associated with a web application and its identity claim encoding type using API.
    For example:
    If the identity claim of windows authentication is user name and the user name is a string, then we should get
    "i:0#.w".
    If the identity claim of forms authentication is
    email and the provider name is "fba" , then we should get "i:0!.f|fba|".
    The below link shows us to get all claims providers associated with a web application, but how do we get the identity claim encoding type of each provider?
    http://msdn.microsoft.com/en-us/library/gg650432(v=office.14).aspx#SP_WCP_Tip3
    using (SPSite theSite = new SPSite("http://someContosoUrl"))
    // Get the web application.
        SPWebApplication wa = theSite.WebApplication;
        // Get the zone for the site.
        SPUrlZone theZone = theSite.Zone;
        // Get the settings that are associated with the zone.
        SPIisSettings theSettings = wa.GetIisSettingsWithFallback(theZone);
        // Get the list of authentication providers that are associated with the zone.
        foreach (SPAuthenticationProvider prov in
            theSettings.ClaimsAuthenticationProviders)
        {   // Need to get the identity claims encoding type using the SPAuthenticationProvider
    Is windows authentication's identity claim encoding type always i.0#.w or the identity claim is always the user name?
    Thanks & Regards,
    Kalai.

    If the requirement is to be able to convert claim identities to windows identities that can be used with other LOB/legacy application that still relies on NTLM/Windows Auth, then I would recommend to explore C2WTS.
    Here are some references:
    http://msdn.microsoft.com/en-us/library/office/ee539739(v=office.14).aspx
    http://blah.winsmarts.com/2013-11-Use_C2WTS_to_get_a_classic_windows_identity_from_a_claims_identity.aspx
    http://henrymcclain.blogspot.in/2013/05/claims-to-windows-token-service-c2wts.html
    http://blogs.msdn.com/b/rodneyviana/archive/2011/02/20/claims-to-windows-token-service-c2wts-may-not-start-automatically-when-you-reboot-your-server-don-t-blame-sharepoint-for-that.aspx
    http://blogs.msdn.com/b/russmax/archive/2010/05/27/understanding-sharepoint-2010-claims-authentication.aspx
    Thanks!
    These postings are provided "AS IS" with no warranties, and confers no rights.

  • Is there an Oracle forms services trace java api

    Hi All,
    Is there a java api to use Oracle Trace on a running oracle form. I see that when I run the Oracle trace here it gets the correct item names. I want to be able to custom make my own trace files useing the oracle trace mechanism as a base. Is there a java api to develop our own forms trace?
    Thanks,
    Mia

    Erik wrote:
    Hi.
    Jdeveloper 11.1.1.2
    Is there a way in ADF to populate extra read-only text-columns in an af:table (based on a ViewObject) as was possible in Oracle Forms with a Post-Query-Trigger:
    Post-Query
    Perform an action after fetching a record, such as looking up values in other tables based on a value in the current record.
    Fires once for each record fetched into the block.
    Best regards
    ErikHi,
    http://docs.oracle.com/cd/E15523_01/web.1111/b31974/appendix_formstriggers.htm#sm0350

  • Update number of hrs in OTL TimeKeeper Entry Form not working using API

    Hi,
    Say for example Employee working hrs are 8/day, I have entered manually in Timekeeper's entry form as follows and submitted and changed status to "approved"
    16-aug-2010 17-aug-2010 18-aug-2010 19-aug-2010 20-aug-2010 21-aug-2010 22-aug-2010
    8 8 8 3 8
    so i need to update 19-aug-2010 to 8 using an API, i tried using API but it's not updating can you guys please let me know.
    Regards,
    Sri

    Follow the OTL api guide and check your code. If your code is proper, timecard should get updated properly.
    --Shiv                                                                                                                                                                                                                                           

  • Delete and attach library without forms builder using java api

    Hi all,
    I am not at all familiar with JAVA. Appreciate if somebody can help me out.
    We have a lot of forms and we are moving them to aix server. To standardize we have renamed all the files as FILENAME.ext i.e filename is upper case and extension is lower. After doing this we get errors while compiling the fmbs as the filename has been modified after it was attached in the forms.
    I need the java api and the procedure to run the api to delete the existing attached libraries and attach the renamed libraries.
    Appreciate your help in this regards.
    Regards,

    hello,
    There are severail ways for you to solve this problem.
    1) Use the jdapi utility you can find at Francois degrelle's javabean depot. Quite easy to use and should solve your problem. You can find it here:
    http://forms.pjc.bean.over-blog.com/article-13596554.html
    2) Use the following two java methods as the basis for your java converter.
    <blockquote>
    private boolean findJdapiObject(JdapiObject object,String objName){
         boolean matchFlag=false;
         // get Iterator with all ownedObjects
    JdapiIterator ownedObjects = object.getOwnedObjects();
    // loop all ownedObjects
    while (ownedObjects.hasNext()) {
    JdapiObject ownedObject = (JdapiObject)ownedObjects.next();
    if (ownedObject.getName().equalsIgnoreCase(objName)){
         matchFlag=true;
         message_verbose = "Librairie PLL est déjà attachée !! " ;
    this.addOutputLine(message_verbose,0);
         return matchFlag;
    // check child objects of this child using recursion
    findJdapiObject(ownedObject, objName);
    return matchFlag;
    private void addJdapiObject(JdapiModule object,String objName){
         boolean matchFlag=false;
         //check if PLL exists
         matchFlag=findJdapiObject((JdapiObject)object, objName);
         if (!matchFlag){
              //add PLL
              numOcc++;
              AttachedLibrary newLib =
    new AttachedLibrary((FormModule)object,objName.toLowerCase());
    </blockquote>
    You need to check that your object does not exist before adding it. You can also modify the addJdapiObject method to remove objects.
    Hafed

  • How reset Acrobat form field using javascript API

    How reset Acrobat form field using javascript API

    There are several ways:
    resetForm(["Text1"]);
    or
    getField("Text1").value = getField("Text1").defaultValue;
    George

  • Oracle Forms C/C++  API

    hi all,
    from where I can get Oracle Forms(6i/9i/10g) C/C++ API reference
    With regards
    Satheesh Kumar

    For C API, you can download Oracle technical white paper
    "Using the Oracle Forms Application Programming Interface (API)"
    http://www.oracle.com/technology//products/forms/pdf/274326.pdf
    The tree examples in the Form Builder online help contained errors.
    The programs have been corrected and presented in white paper.
    Note that you can also use JDAPI (Java Development API) for Oracle Forms 6i/9i/10g.
    Regards,
    Zlatko Sirotic

  • Forms API. Function to retrieve/set Frame Line Width

    HI,
    I am writing a program using the API to check standards conformance, but cannot find the function to retrieve the Frame Line Width. Any ideas?
    Cheers,
    Neil

    Forms API header file D2FGRA.H (for graphic objects) contains macros for geting/seting some frame properties, for example:
    #define d2fgrag_frame_align(ctx, obj, val) \ d2fgragn_GetNumProp(ctx, obj, D2FP_FRAME_ALIGN, val)
    but not for geting/seting property "Frame Line Width".
    So, we must use functions
    d2fgragn_GetNumProp(ctx, p_obj, PROPERTY, val)
    d2fgrasn_SetNumProp(ctx, p_obj, PROPERTY, val)
    (GetNumProp because "Frame Line Width" is number-valued property).
    Property D2FP_LIN_WID ("Line Width") mentioned in Forms help "Graphics object API properties"
    don't exists in header file D2FDEF.H, but you can find property D2FP_INTERNAL_LIN_WID:
    #define D2FP_INTERNAL_LIN_WID 225
    So, use:
    d2fgragn_GetNumProp(ctx, p_obj, D2FP_INTERNAL_LIN_WID, val)
    Regards,
    Zlatko Sirotic

  • Deleted Item not actually getting deleted or **delay** deleted thus getting refetched (EWS Managed API)

    I am polling Exchange Server to fetch all the mails left in the Inbox and then fetching them, processing them and finally moving them to the deleted folder. My procedure takes following form of EWS Managed API calls:
    1 itemResults = service.FindItems(WellKnownFolderName.Inbox, itemView);
    2 //some code...
    3 service.LoadPropertiesForItems(itemResults.Items, itItemPropSet);
    4 //some code...
    5 foreach(Item item in itemResults)
    6 {
    7 //process item
    8 item.Delete(DeleteMode.MoveToDeletedItems);
    9 }
    To test this code I flooded the inbox with 5000 mails, 5 threads flooding 1000 mails each at the interval of 4ms.
    After test run, I realized some mails are getting processed multiple times.
    When I read the soap traces logged using TraceListener, I realized that when there are more than 100 mails in the inbox, there are more SOAP packets were dispatched in burst of 100s.
    Logically below set of SOAP Packets (let us call it "Set 1") should occur only once:
    <m:FindItem>...</m:FindItem> //generated by line 1
    <m:FindItemResponse>...</m:FindItemResponse> //generated by line 1
    <m:GetItem>...</m:GetItem> //generated by line 3
    <m:GetItemResponse>...</m:GetItemResponse> //generated by line 3
    followed x number of Delete SOAP packets for x number of mails in the Inbox
    <m:DeleteItem>...</m:DeleteItem> //generated by line 8
    <m:DeleteItemRepsonse>...</m:DeleteItemRepsonse> //generated by line 8
    However if there are say 325 mails in the inbox, then there first occurs 4 occurences of Set 1 followed by Delete SOAP packest as follows:
    //1st occurence
    <m:FindItem>100 items</m:FindItem>
    <m:FindItemResponse>100 items</m:FindItemResponse>
    <m:GetItem>100 items</m:GetItem>
    <m:GetItemResponse>35 items</m:GetItemResponse>
    //2nd occurence
    <m:FindItem>100 items</m:FindItem>
    <m:FindItemResponse>100 items</m:FindItemResponse>
    <m:GetItem>100 items</m:GetItem>
    <m:GetItemResponse>35 items</m:GetItemResponse>
    //3rd occurence
    <m:FindItem>100 items</m:FindItem>
    <m:FindItemResponse>100 items</m:FindItemResponse>
    <m:GetItem>100 items</m:GetItem>
    <m:GetItemResponse>100 items</m:GetItemResponse>
    //4th occurence
    <m:FindItem>35 items</m:FindItem>
    <m:FindItemResponse>35 items</m:FindItemResponse>
    <m:GetItem>35 items</m:GetItem>
    <m:GetItemResponse>35 items</m:GetItemResponse> //****followed by 335 occurences of the Delete SOAP packets****<m:DeleteItem>...</m:DeleteItem>  
    <m:DeleteItemRepsonse>...</m:DeleteItemRepsonse> 
    //334 more of above
    So there are 100 + 100 + 100 + 35 = 335 items actually getting handled, which is 10 more than what are actually present in the inbox. 
    Also notice that Delete SOAP packets are queued till end. They are not dispatched in burst.
    First thing I realize dispatching SOAP packets in burst of 100s is EWS Managed API behavior. I guess there must be traffic reason behind it and there must be some configuration setting to tweak it.
    Q1. How can we change this count of 100?
    I inferred that there are some overlaps in fetching of mails.
    So I copy pasted SOAP Traces for first two of
    <m:GetItem>100 items</m:GetItem>
    in two different files, and compared them in text comparer. I realised that some mails that are at the end of the first 100s were reappearing at the beginning of 2nd 100: 
    This is the pattern in many test runs.
    Due to this these overlapping mails, these mails are getting processed twice. Also the attempt to second time delete them was throwing exception : The specified object was not found in the store.
    So I guess there is time delay in delete mail API call and mails actually getting deleted, between which they are getting refetched.
    Q2. How can I handle this to avoid redundant processing of mails and unnecessary exceptions.

    I am polling Exchange Server to fetch all the mails left in the Inbox and then fetching them, processing them and finally moving them to the deleted folder. My procedure takes following form of EWS Managed API calls:
    1 itemResults = service.FindItems(WellKnownFolderName.Inbox, itemView);
    2 //some code...
    3 service.LoadPropertiesForItems(itemResults.Items, itItemPropSet);
    4 //some code...
    5 foreach(Item item in itemResults)
    6 {
    7 //process item
    8 item.Delete(DeleteMode.MoveToDeletedItems);
    9 }
    To test this code I flooded the inbox with 5000 mails, 5 threads flooding 1000 mails each at the interval of 4ms.
    After test run, I realized some mails are getting processed multiple times.
    When I read the soap traces logged using TraceListener, I realized that when there are more than 100 mails in the inbox, there are more SOAP packets were dispatched in burst of 100s.
    Logically below set of SOAP Packets (let us call it "Set 1") should occur only once:
    <m:FindItem>...</m:FindItem> //generated by line 1
    <m:FindItemResponse>...</m:FindItemResponse> //generated by line 1
    <m:GetItem>...</m:GetItem> //generated by line 3
    <m:GetItemResponse>...</m:GetItemResponse> //generated by line 3
    followed x number of Delete SOAP packets for x number of mails in the Inbox
    <m:DeleteItem>...</m:DeleteItem> //generated by line 8
    <m:DeleteItemRepsonse>...</m:DeleteItemRepsonse> //generated by line 8
    However if there are say 325 mails in the inbox, then there first occurs 4 occurences of Set 1 followed by Delete SOAP packest as follows:
    //1st occurence
    <m:FindItem>100 items</m:FindItem>
    <m:FindItemResponse>100 items</m:FindItemResponse>
    <m:GetItem>100 items</m:GetItem>
    <m:GetItemResponse>35 items</m:GetItemResponse>
    //2nd occurence
    <m:FindItem>100 items</m:FindItem>
    <m:FindItemResponse>100 items</m:FindItemResponse>
    <m:GetItem>100 items</m:GetItem>
    <m:GetItemResponse>35 items</m:GetItemResponse>
    //3rd occurence
    <m:FindItem>100 items</m:FindItem>
    <m:FindItemResponse>100 items</m:FindItemResponse>
    <m:GetItem>100 items</m:GetItem>
    <m:GetItemResponse>100 items</m:GetItemResponse>
    //4th occurence
    <m:FindItem>35 items</m:FindItem>
    <m:FindItemResponse>35 items</m:FindItemResponse>
    <m:GetItem>35 items</m:GetItem>
    <m:GetItemResponse>35 items</m:GetItemResponse> //****followed by 335 occurences of the Delete SOAP packets****<m:DeleteItem>...</m:DeleteItem>  
    <m:DeleteItemRepsonse>...</m:DeleteItemRepsonse> 
    //334 more of above
    So there are 100 + 100 + 100 + 35 = 335 items actually getting handled, which is 10 more than what are actually present in the inbox. 
    Also notice that Delete SOAP packets are queued till end. They are not dispatched in burst.
    First thing I realize dispatching SOAP packets in burst of 100s is EWS Managed API behavior. I guess there must be traffic reason behind it and there must be some configuration setting to tweak it.
    Q1. How can we change this count of 100?
    I inferred that there are some overlaps in fetching of mails.
    So I copy pasted SOAP Traces for first two of
    <m:GetItem>100 items</m:GetItem>
    in two different files, and compared them in text comparer. I realised that some mails that are at the end of the first 100s were reappearing at the beginning of 2nd 100: 
    This is the pattern in many test runs.
    Due to this these overlapping mails, these mails are getting processed twice. Also the attempt to second time delete them was throwing exception : The specified object was not found in the store.
    So I guess there is time delay in delete mail API call and mails actually getting deleted, between which they are getting refetched.
    Q2. How can I handle this to avoid redundant processing of mails and unnecessary exceptions.

  • Passing values from a form to a page containing forms.

    I would like to pass a value from a form to a page containing two forms (one of the forms is in a tab).Once the value is passed, I want the two forms to be executed with the value passed. Can this be done and how? Any help would be appreciated. Thanks.

    Yes, this is possible.
    I will give you a brief outline.
    From the 1st form, you need to save the value, you want to pass to the 2 other forms, using the wwsto_api_session apis.
    Then, using go() or call() from the Successful submission section, you need to go/call the page containing the 2 forms.
    You need to write some pl/sql code in the 2 forms (on the page) to retrieve the value saved and perform the action you desire. The saved value can be retrieved using the wwsto_api_session apis.
    However, both forms will not get executed at the same time unless both of them are in the same tab i.e. unless both forms are visible at the same time.
    If the forms are on different tabs, they will get executed when they are being displayed.
    But, there are ways to execute both the forms, if it really necessary, even if they are not on the same tab.
    I will be posting the an example soon in this thread.

  • How to create a Form based on a dynamic table?

    Hello,
    The Select statement below creates a table based on a string (string is a value of an item):
    select * from table (pkg_util.fn_get_table (:P18_VALUE))I need to create a region on a page with a Form based on this table.
    I was able to create a Report, but not a Form.
    I need to create a Form, which would return updated string to the page item.
    How can I solve this please?

    Hello Gentlemen,
    I have created a Tabular Form, based on APEX_ITEM API, as you suggested, here is the code below:
    SELECT apex_item.checkbox (30,
                               CATALOG_ID,
                               'onclick="highlight_row(this,' || ROWNUM || ')"',
                               NULL,
                               'f30_' || LPAD (ROWNUM, 4, '0')
                              ) delete_checkbox,
           CATALOG_ID,
              apex_item.hidden (31, CATALOG_ID)
           || apex_item.text (32,
                              LANG,
                              80,
                              100,
                              'style="width:100px"',
                              'f32_' || LPAD (ROWNUM, 4, '0')
           || apex_item.hidden (33, wwv_flow_item.md5 (LANG, DESCRIPTION)) LANG,
           apex_item.text (34,
                           DESCRIPTION,
                           80,
                           100,
                           'style="width:255px"',
                           'f34_' || LPAD (ROWNUM, 4, '0')
                          ) DESCRIPTION
      FROM V_SYSTEM_CATALOGS_PR
    UNION ALL
    SELECT     apex_item.checkbox
                              (30,
                               TO_NUMBER(9900 + LEVEL),
                               'onclick="highlight_row(this,' || ROWNUM || ')"',
                               NULL,
                               'f30_' || TO_NUMBER (9900 + LEVEL)
                              ) delete_checkbox,
               NULL,
                  apex_item.hidden (31, NULL)
               || apex_item.text (32,
                                  NULL,
                                  80,
                                  100,
                                  'style="width:100px"',
                                  'f32_' || TO_NUMBER (9900 + LEVEL)
               || apex_item.hidden (33, NULL) LANG,
               apex_item.text
                                               (34,
                                                NULL,
                                                80,
                                                100,
                                                'style="width:255px" '  ,
                                                'f34_'
                                                || TO_NUMBER (9900 + LEVEL)
                                               ) DESCRIPTION
          FROM DUAL
         WHERE :P180_TEMP = 'ADD_ROWS1'
    CONNECT BY LEVEL <= 1however, the update process doe not work on that form:
    DECLARE
      lc_string VARCHAR2(4000);
    BEGIN
      FOR i IN 1..APEX_APPLICATION.G_f*30*.COUNT
      LOOP
          lc_string := lc_string|| '[' ||APEX_APPLICATION.G_f*32*(i) || '|' || APEX_APPLICATION.G_f*34*(i) || ']';
      END LOOP;
      --Database processing using the concatenated string here
    END;Can you please see what's wrong with the code?
    Also, I tried to set a temp. item with the value, to see if the process returns something, like that:
    DECLARE
      lc_string VARCHAR2(4000);
    BEGIN
      FOR i IN 1..APEX_APPLICATION.G_f*30*.COUNT
      LOOP
          lc_string := lc_string|| '[' ||APEX_APPLICATION.G_f*32*(i) || '|' || APEX_APPLICATION.G_f*34*(i) || ']';
      END LOOP;
         :p18_temp := lc_string;
    END;and it did not work.
    Also, it is the second Tabular Form on this page. The first one is created using wizard, and it works perfect, with the same update process:
    DECLARE
      lc_string VARCHAR2(4000);
    BEGIN
      FOR i IN 1..APEX_APPLICATION.G_f*01*.COUNT
      LOOP
          lc_string := lc_string|| '[' ||APEX_APPLICATION.G_f*03*(i) || '|' || APEX_APPLICATION.G_f*04*(i) || ']';
      END LOOP;
      --Database processing using the concatenated string here
    END;Also, both forms are opening in a modal pop-up dialog window.
    I use a Dialog Region plug-in for that.
    May be this is causing a problem?
    But still, the first form works fine!?

  • How do I add a button to an existing form

    I have seen a few questions similar to this, but I am a total novice to customizing SBO.  This is the procedure as I understand it, please tell me if I am correct. 
    I have to have some application running (call it MyApp).  MyApp contains the code to catch the load event for the form I am intersted in, and add the button then let the form load.  Is that correct?  Then what do I need to do to capture the event caused by pressing the new button?  Ultimately, this exercise will add a button to the Activity form and then cause the screen to refresh when the button is pressed.
    I am NOT asking for someone to do this for me, but I see "pieces" of what I think I want to do in the examples and help, I just want to be sure I am heading in the right direction before getting mired down.
    TIA

    Hi Steve,
    For adding your button to a system form, your approach is correct (ie capture the load event of the form your want to customise and add the button using the UI API or by loading via XML). There is an example of customising a system form in the UI API samples from the SDK. There is also an article on how to use XML to load new controls that can be found here:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/ebe72e9e-0301-0010-979e-d37dcd714600
    For capturing the event of the user clicking on your new button, what you need to do is trap the Item Pressed event for that form. I also recommend you look at filtering the events that your addon captures. This is good practice as a lack of event filtering can cause significant performance issues.
    Kind Regards,
    Owen

  • Error while accessing Child Form process info

    I've created my Process task Adapter and attached it to "AD User" Process Definition.
    When I try to retrieve information about AD Groups from the child form of UD_AD_USER (form named AD_RSC), I get the following error:
    ERROR,28 okt 2007 15:08:26,765,[XELLERATE.DATABASE],select obi_key, UD_ADUSER_VERSION from UD_ADUSER where obi_key=5
    java.sql.SQLException: ORA-00904: "OBI_KEY": invalid identifier
    the problem is that there's NO field named OBI_KEY in the standard UD_ADUSER table.
    The same thing happens when I'm trying to access child form data through Xellerate API
    ( getChildFormDefinition(long plParentFormDefinitionKey, int pnParentFormVersion) or getProcessFormChildData(long plChildFormDefinitionKey, long plProcessInstanceKey) )
    is it some king of bug? I haven't found anything at metalink :(

    I have no issues getting child table information using the APIs... I am doing it on both 9.0.1.X versions and 9.0.3.X versions. I would suggest looking at how you are getting the process keys.. (i.e., are you mapping it in through the adapter, getting it from findObjects, etc)... and also look at your configuration of the child tables and make sure everything is active and kosher.
    If you post the rest of your code, I might be able to help you.
    Cheers,
    Deborah

  • Creating a Request via OIM 11g API

    I'm trying to create a request in OIM using the API. I found this post ( OIM 11g - Setting Process Form Data through Request API ) which has the code to do it but I'm getting an error:
    Here is what I have
    OIMClient client = getOIMClient(url, username, password);
          long resKey = 0L;
          String str = null;
          String resourceKey = null;
          Map<String, String> searchMap = new HashMap<String, String>();
          tcResultSet resultSet = null;
          RequestData requestData = null;
          Beneficiary beneficiary = null;
          RequestBeneficiaryEntity entity = null;
          List<Beneficiary> beneficiaryList = new ArrayList<Beneficiary>();
          List<RequestBeneficiaryEntity> entityList = null;
          List<RequestBeneficiaryEntityAttribute> entityAttrList = null;
          String RESOURCE = "TESTRESOURCE_GTC";
          tcITResourceInstanceOperationsIntf operations = client.getService(tcITResourceInstanceOperationsIntf.class);
          Map<String, String> conditions = new HashMap<String, String>();
          conditions.put("IT Resources.Name", "TESTRESOURCE_GTC");
          resultSet = operations.findITResourceInstances(conditions);           
          resKey = resultSet.getLongValue("IT Resource.Key");
          resourceKey = Long.toString(resKey);
          RequestBeneficiaryEntityAttribute parantAttr = new RequestBeneficiaryEntityAttribute();
          parantAttr.setType(TYPE.String);
          parantAttr.setName("Title");
          parantAttr.setValue("Mr.");
          entityAttrList = new ArrayList<RequestBeneficiaryEntityAttribute>();
          entityAttrList.add(parantAttr);
          entity = new RequestBeneficiaryEntity();
          entity.setEntityKey(resourceKey);
          entity.setEntityType(RequestConstants.RESOURCE);
          entity.setEntitySubType(RESOURCE);
          entity.setEntityData(entityAttrList);
          entityList = new ArrayList<RequestBeneficiaryEntity>();
          entityList.add(entity);
          System.out.println("*********** USR KEY" + usrKey);
          beneficiary = new Beneficiary();
          beneficiary.setBeneficiaryType(Beneficiary.USER_BENEFICIARY);
          beneficiary.setBeneficiaryKey(usrKey);
          beneficiary.setTargetEntities(entityList);
          beneficiaryList.add(beneficiary);
          requestData = new RequestData();
          requestData.setRequestTemplateName("Self-Request Resource");
          requestData.setJustification("Test");
          requestData.setBeneficiaries(beneficiaryList);
          UnauthenticatedRequestService reqsrvc = client.getService(UnauthenticatedRequestService.class);
          str = reqsrvc.submitRequest(requestData);
          System.out.println("Value from submitRequest : '" + (str != null ? str : null) + "'");I'm getting
    <Feb 14, 2012 4:53:24 PM EST> <Error> <oracle.iam.request.impl> <IAM-2050128> <Invalid beneficiary key was specified for Self-Request. >
    oracle.iam.request.exception.InvalidRequestDataException: IAM-2050128:Invalid beneficiary key was specified for Self-Request.
    I can see that USER KEY is getting populated.
    Edited by: DJ on Feb 14, 2012 4:59 PM
    Edited by: DJ on Feb 14, 2012 5:00 PM

    While creating a request to provision iPlanet User one of the errors I was getting:
    oracle.iam.request.exception.RequestServiceException: IAM-2050061:Type mismatch for the attribute Server. The type passed is String, but the corresponding type in the data set is Long.:Server:String:Long
    So I replaced the value of the attribute Server to the IT Resource.Key which is 5. After making the changes, it goes through approvals with no problems, but when I approve all the work items, it errors out with an error:
    Error occurred while provisioning resource with key 45 to user 5
    User Key is 45 and Resource Key is 5. I'm not sure why it swapped it.
    Here is the code I'm using:
    public static void createRequest(String userLogin, String templateName, String resourceName, HashMap<String, Object> attrs, OIMClient client) {
        try {
          String usrKey = searchUserByLogin(userLogin, client).get(0).getId();
          long resKey = 0L;
          String str = null;
          String resourceKey = null;
          Map<String, String> searchMap = new HashMap<String, String>();
          tcResultSet resultSet = null;
          RequestData requestData = null;
          Beneficiary beneficiary = null;
          RequestBeneficiaryEntity entity = null;
          List<Beneficiary> beneficiaryList = new ArrayList<Beneficiary>();
          List<RequestBeneficiaryEntity> entityList = null;
          List<RequestBeneficiaryEntityAttribute> entityAttrList = new ArrayList<RequestBeneficiaryEntityAttribute>();
          tcITResourceInstanceOperationsIntf operations = client == null ? Platform.getService(tcITResourceInstanceOperationsIntf.class) : client.getService(tcITResourceInstanceOperationsIntf.class);
          Map<String, String> conditions = new HashMap<String, String>();
          conditions.put("IT Resources.Name", resourceName);
          resultSet = operations.findITResourceInstances(conditions);
          resKey = resultSet.getLongValue("IT Resource.Key");
          resourceKey = Long.toString(resKey);
          for (String attr : attrs.keySet()) {
            RequestBeneficiaryEntityAttribute parantAttr = new RequestBeneficiaryEntityAttribute();
            if (attrs.get(attr) instanceof String) {
              parantAttr.setType(TYPE.String);
              parantAttr.setName(attr);
              parantAttr.setValue(String.valueOf(attrs.get(attr)));
              entityAttrList.add(parantAttr);
            } else if (attrs.get(attr) instanceof Long) {
              parantAttr.setType(TYPE.Long);
              parantAttr.setName(attr);
              parantAttr.setValue(String.valueOf(attrs.get(attr)));
              entityAttrList.add(parantAttr);
            } else {
              // do nothing
          entity = new RequestBeneficiaryEntity();
          entity.setEntityKey(resourceKey);
          entity.setEntityType(RequestConstants.RESOURCE);
          entity.setEntitySubType(resourceName);
          entity.setEntityData(entityAttrList);
          entityList = new ArrayList<RequestBeneficiaryEntity>();
          entityList.add(entity);
          beneficiary = new Beneficiary();
          beneficiary.setBeneficiaryType(Beneficiary.USER_BENEFICIARY);
          beneficiary.setBeneficiaryKey(usrKey);
          beneficiary.setTargetEntities(entityList);
          beneficiaryList.add(beneficiary);
          requestData = new RequestData();
          requestData.setRequestTemplateName(templateName);
          requestData.setJustification("Test");
          requestData.setBeneficiaries(beneficiaryList);
          System.out.println("Resource Keys " + resKey + " " + resourceKey);
          System.out.println("User Key " + usrKey);
          RequestService reqsrvc = client == null ? Platform.getService(RequestService.class) : client.getService(RequestService.class);
          str = reqsrvc.submitRequest(requestData);
          System.out.println("Value from submitRequest : '" + (str != null ? str : null) + "'");
        } catch (Throwable t) {
          t.printStackTrace();
      }Edited by: DJ on Feb 16, 2012 5:01 PM

  • How to disable the date picker in manualy Tabular form?

    I develope an application with apex 3.2 , I builded a tabular form manualy with APEX API and I have an item 'date picker' , I want that once user want insert the date , he can do it only by clicking on the date picker and not into the item
    I try to use the code that was provided by 'Desnes Kubicek' on his blog , but it does not works
    Any help!!!!!
    I used this code , but that is for an one item form
    <script type="text/javascript">
    function disFormItems(item1){
    disItem = document.getElementById(item1);
    disItem.style.background = '#eeeeee';
    disItem.disabled = true;
    </script>
    2. Region Footer javascript:
    <script type="text/javascript">
    disFormItems('P18_DATE_PICKER');
    </script>

    Hi,
    Try something like this
    SELECT
    APEX_ITEM.DATE_POPUP(4,rownum,hiredate,'dd-mon-yyyy',12,15,'readonly="readonly"','f04_' || ROWNUM) hd
    FROM EMP;Thanks,
    Manish

Maybe you are looking for