Difference in Creation of BRF+ artifact through API / Workbench

Hello  ,
I am new in BRF+ development. Need your help . While creating BRFPlus artifact in NW 7002 , what will be differences
1) if we create  Application / function / Data object / Ruleset etc  using BRF+ workbench  and use ABAP code for calling /passing parameters
2)if we  create   all these through through APIs .
can anyone  guide me please .
Thanks in advance.
PS

HI Carsten,
Thanks for you response.
Just to clarify some more ...Is there any issue later / limitation while extending/ changing  the functionality of rulesets if we create those with workbench in place of using APIs .
For example in production server if we need to change / replace some context parameters OR adding one more row in decision table / or any other change.
Thanks & Regards,
PS

Similar Messages

  • How To Load a Project Budget Line Through API in R12 ?

    Hello
    Could you please let me know how to load the project budget lines through API in R12 system, I am trying with below script but it is not working.
    Could you please let me know if you have any solution.
    =========================================================================================================================================================================
    Script
    DECLARE
    --––variables needed for API standard parameters
       l_api_version_number     NUMBER                                 := 1.0;
       l_commit                 VARCHAR2 (1)                           := 'T';
       l_return_status          VARCHAR2 (1);
       l_init_msg_list          VARCHAR2 (1);
       l_msg_count              NUMBER;
       l_msg_data               VARCHAR2 (2000);
       l_data                   VARCHAR2 (2000);
       l_msg_entity             VARCHAR2 (100);
       l_msg_entity_index       NUMBER;
       l_msg_index              NUMBER;
       l_msg_index_out          NUMBER;
       l_encoded                VARCHAR2 (1);
       i                        NUMBER;
       a                        NUMBER;
    --––variables needed for Oracle Project specific parameters
       l_pm_product_code        VARCHAR2 (100);
       l_pa_project_id          NUMBER;
       l_pm_project_reference   VARCHAR2 (100);
       l_budget_type_code       VARCHAR2 (30);
       l_change_reason_code     VARCHAR2 (30);
       l_description            VARCHAR2 (255);
       l_entry_method_code      VARCHAR2 (30);
       l_resource_list_name     VARCHAR2 (60);
       l_resource_list_id       NUMBER;
       l_budget_lines_in        pa_budget_pub.budget_line_in_tbl_type;
       l_budget_lines_in_rec    pa_budget_pub.budget_line_in_rec_type;
       l_budget_lines_out       pa_budget_pub.budget_line_out_tbl_type;
       l_line_index             NUMBER;
       l_line_return_status     VARCHAR2 (1);
       l_user_id                NUMBER;
       l_responsibility_id      NUMBER;
       API_ERROR                EXCEPTION;
    BEGIN
       -- SET GLOBAL INFO
       SELECT user_id,
              responsibility_id
         INTO l_user_id,
              l_responsibility_id
         FROM pa_user_resp_v
        WHERE user_name = 'RAJU';
       PA_INTERFACE_UTILS_PUB.SET_GLOBAL_INFO (p_api_version_number      => 1.0,
    p_responsibility_id       => l_responsibility_id,
    p_user_id                 => l_user_id,
                                               p_msg_count               => l_msg_count,
    p_msg_data                => l_msg_data,
    p_return_status           => l_return_status
       IF l_return_status != 'S'
       THEN
          RAISE API_ERROR;
       END IF;
    --––PRODUCT RELATED DATA
       l_pm_product_code        := 'GMS';
    --––BUDGET DATA
       l_pa_project_id          := 6271;
       l_pm_project_reference   := NULL;--'ABC';
       l_budget_type_code       := 'FC';
       -- l_change_reason_code := 'INITIAL';
       l_description            := 'New description –> 2';
       l_entry_method_code      := 'PA_TASKLVL_BASELINE';
       l_resource_list_id       := 1001;
    --––BUDGET LINES DATA
       a                := 1;
       FOR i IN 1 .. a
       LOOP
          l_budget_lines_in_rec.pa_task_id := 405156;
          l_budget_lines_in_rec.pm_task_reference       := NULL;
          l_budget_lines_in_rec.resource_alias          := 'Labor';
          l_budget_lines_in_rec.resource_list_member_id := '1034';
          -- l_budget_lines_in_rec.budget_start_date        := '01-Jan-13';
          -- l_budget_lines_in_rec.budget_end_date          := '31-Dec-14';
          -- l_budget_lines_in_rec.period_name          := 'JUL-10FY2011';
          l_budget_lines_in_rec.description             := 'Some Text';
          l_budget_lines_in_rec.quantity := 100.00;
          l_budget_lines_in_rec.raw_cost := 300.00;
          l_budget_lines_in (i)                         := l_budget_lines_in_rec;
       END LOOP;
    --––INIT_BUDGET
       pa_budget_pub.init_budget;
    --––LOAD_BUDGET_LINE
       FOR i IN 1 .. a
       LOOP
          pa_budget_pub.load_budget_line
                            (p_api_version_number           => l_api_version_number,
    p_return_status                => l_return_status,
                             p_pa_task_id                   => l_budget_lines_in (i).pa_task_id,
    p_pm_task_reference            => l_budget_lines_in (i).pm_task_reference,
    p_resource_alias               => l_budget_lines_in (i).resource_alias,
    p_resource_list_member_id      => l_budget_lines_in (i).resource_list_member_id,
    p_budget_start_date            => l_budget_lines_in (i).budget_start_date,
                             p_budget_end_date              => l_budget_lines_in (i).budget_end_date,
    p_period_name                  => l_budget_lines_in (i).period_name,
    p_description                  => l_budget_lines_in (i).description,
                             p_raw_cost                     => l_budget_lines_in (i).raw_cost,
    p_burdened_cost                => l_budget_lines_in (i).burdened_cost,
    p_revenue                      => l_budget_lines_in (i).revenue,
    p_quantity                     => l_budget_lines_in (i).quantity
       END LOOP;
       IF l_return_status != 'S'
       THEN
          RAISE api_error;
       END IF;
    --––EXECUTE_CREATE_DRAFT_BUDGET
        pa_budget_pub.execute_create_draft_budget (p_api_version_number        => l_api_version_number,
    p_msg_count                 => l_msg_count,
    p_msg_data                  => l_msg_data,
    p_return_status             => l_return_status,
    p_pm_product_code           => l_pm_product_code,
                                                  p_pa_project_id             => l_pa_project_id,
    p_pm_project_reference      => l_pm_project_reference,
    p_budget_type_code          => l_budget_type_code,
    p_change_reason_code        => l_change_reason_code,
    p_description               => l_description,
                                                  p_entry_method_code         => l_entry_method_code,
    p_resource_list_name        => l_resource_list_name,
    p_resource_list_id          => l_resource_list_id
       IF l_return_status != 'S'
       THEN
          NULL; --––RAISE API_ERROR;
       END IF;
    --––FETCH_LINE
       FOR l_line_index IN 1 .. pa_budget_pub.g_budget_lines_tbl_count
       LOOP
          pa_budget_pub.fetch_budget_line (p_api_version_number      => l_api_version_number,
    p_return_status           => l_return_status,
    p_line_index              => l_line_index,
    p_line_return_status      => l_line_return_status
          IF l_return_status != 'S' OR l_line_return_status != 'S'
          THEN
             RAISE api_error;
          END IF;
       END LOOP;
    --––CLEAR_BUDGET
       pa_budget_pub.clear_budget;
       IF l_return_status != 'S'
       THEN
          RAISE api_error;
       END IF;
    --––HANDLE EXCEPTIONS
    EXCEPTION
       WHEN api_error
       THEN
          FOR i IN 1 .. l_msg_count
          LOOP
             pa_interface_utils_pub.get_messages (p_msg_data           => l_msg_data,
    p_data               => l_data,
    p_msg_count          => l_msg_count,
    p_msg_index_out      => l_msg_index_out
             DBMS_OUTPUT.put_line ('Error Mesg ' || l_data);
             DBMS_OUTPUT.put_line ('Error Mesg ' || l_msg_data);
          END LOOP;
       WHEN OTHERS
       THEN
          FOR i IN 1 .. l_msg_count
          LOOP
             pa_interface_utils_pub.get_messages (p_msg_data           => l_msg_data,
    p_data               => l_data,
                                                  p_msg_count          => l_msg_count,
    p_msg_index_out      => l_msg_index_out
             DBMS_OUTPUT.put_line ('error mesg ' || l_data);
          END LOOP;
    END;
    =========================================================================================================================================================================

    Not knowing how its embedded...  you will need to get the report instance from the dll and cast it as a ReportDocument object.
    Given the info so far, that is all we can say.
    Ludek
    Follow us on Twitter http://twitter.com/SAPCRNetSup
    Got Enhancement ideas? Try the [SAP Idea Place|https://ideas.sap.com/community/products_and_solutions/crystalreports]

  • Error while creating contact through API in Install Base

    Hello
    I am trying to create contacts when creating a install base through API...
    I tried below code as per metalink note# 215456.1 and giving the below error. I checked setup andI have 'Ship To' exists in Instnace Party Account Relationsship setup in the aplication and also I have a party Id 1232890 exist in hz_parties table with party type as 'Person' and I passed contact_ip_id as instance_party_id from CSI_I_PARTIES table for the instance to be update...
    Also, can anybody help me how to purge the error messages before calling the API, suppose if i have 2 records and all two records will error then my second record error getting contatenated with my first error and message count also getting increased(see error message below as message count coming as 2 even though there is only one error)
    SET SERVEROUTPUT ON SIZE 1000000
    DECLARE
    p_instance_rec CSI_DATASTRUCTURES_PUB.INSTANCE_REC;
    p_ext_attrib_values_tbl
    CSI_DATASTRUCTURES_PUB.EXTEND_ATTRIB_VALUES_TBL;
    p_party_tbl CSI_DATASTRUCTURES_PUB.PARTY_TBL;
    p_account_tbl CSI_DATASTRUCTURES_PUB.PARTY_ACCOUNT_TBL;
    p_pricing_attrib_tbl CSI_DATASTRUCTURES_PUB.PRICING_ATTRIBS_TBL;
    p_org_assignments_tbl CSI_DATASTRUCTURES_PUB.ORGANIZATION_UNITS_TBL;
    p_asset_assignment_tbl CSI_DATASTRUCTURES_PUB.INSTANCE_ASSET_TBL;
    p_txn_rec CSI_DATASTRUCTURES_PUB.TRANSACTION_REC;
    x_instance_id_lst CSI_DATASTRUCTURES_PUB.ID_TBL;
    x_return_status VARCHAR2(2000);
    x_msg_count NUMBER;
    x_msg_data VARCHAR2(2000);
    x_msg_index_out NUMBER;
    t_output VARCHAR2(2000);
    t_msg_dummy NUMBER;
    BEGIN
    p_party_tbl(1).instance_party_id := null;
    p_party_tbl(1).instance_id := 1216497;
    p_party_tbl(1).party_source_table := 'HZ_PARTIES';
    p_party_tbl(1).party_id := 1232890;
    p_party_tbl(1).relationship_type_code := 'Ship To';
    p_party_tbl(1).contact_flag := 'Y';
    p_party_tbl(1).contact_ip_id := 1699185;
    x_msg_count := 0;
    p_party_tbl(1).OBJECT_VERSION_NUMBER := 1;
    -- Now call the stored program
    csi_item_instance_pub.update_item_instance(
    1.0,
    'F',
    'F',
    1,
    p_instance_rec,
    p_ext_attrib_values_tbl,
    p_party_tbl,
    p_account_tbl,
    p_pricing_attrib_tbl,
    p_org_assignments_tbl,
    p_asset_assignment_tbl,
    p_txn_rec,
    x_instance_id_lst,
    x_return_status,
    x_msg_count,
    x_msg_data);
    -- Output the results
    if x_msg_count > 0
    then
    for j in 1 .. x_msg_count loop
    fnd_msg_pub.get
    ( j
    , FND_API.G_FALSE
    , x_msg_data
    , t_msg_dummy
    t_output := ( 'Msg'
    || To_Char
    ( j
    || ': '
    || x_msg_data
    dbms_output.put_line
    ( SubStr
    ( t_output
    , 1
    , 255
    end loop;
    end if;
    dbms_output.put_line('x_return_status = '||x_return_status);
    dbms_output.put_line('x_msg_count = '||TO_CHAR(x_msg_count));
    dbms_output.put_line('x_msg_data = '||x_msg_data);
    -- COMMIT;
    END;
    ERROR
    SQL> @p
    Msg1: The Party Relationship Type (Ship To) entered is either invalid or it does
    not exist in the Installed Base Lookups
    Msg2: The Party Relationship Type (Ship To) entered is either invalid or it does
    not exist in the Installed Base Lookups
    x_return_status = E
    x_msg_count = 2
    x_msg_data = The Party Relationship Type (Ship To) entered is either invalid or
    it does not exist in the Installed Base Lookups
    PL/SQL procedure successfully completed.

    Hi
    We are in 11.5.10.2 and I already checked notes which you sent before and setups are fine as the relationship type' Ship to' having 'contacts' enabled in the setup.
    I am also seeing a differernt issue as once I update existing item instnace with the status 'Return for Credit' through API, system is not allowing me to update the extended attributes through front end application manually and I am seeing a note at the end of the screen as 'Note: This item instance cannot be updated. ' and this is only happening when I update the item instance status to 'Returned for Credit' not when I create new item instances with status as 'Created'. Is this intended functionality to restrict update on extended attributes if I change the status of item instnace to 'Return for Credit' ?
    Thanks

  • Inbound Delivery creation in ECC6.0 through IDoc (DELVRY03.DESADV)

    Inbound Delivery creation in ECC6.0 through IDoc (DELVRY03.DESADV)
    From SCM ICH system Supplier creates ASN on the WEBUI & sends it ECC 6.0 using XI.
    This is Proxy (DespatchedDeliveryNotification) to IDOC (DELVRY03.DESAV) scenario
    But at the receiver end i.e. ECC6.0 its giving me error at Tcode WE02 as action is not supported.
    Can you suggest me how to tackle this issue.
    Thanks in Advance.
    Regards,
    N>B.Shanmukha

    hi,
    >>>giving me error at Tcode WE02 as action is not supported.
    there are many segments in delvry03 with a first field - action (like, delete, create, 001,002, etc)
    check all of them as probably you're using one which is not supported
    and this is the real cause of the error
    you can check it like this:
    open this IDOC in We19
    then open action field and F4 and see if the one you use in the idoc is in F4
    change the wrong one and it will work :for 100%
    Regards,
    Michal Krawczyk

  • Issue in migration of Planning artifacts through LCM

    Hi,
    I am trying to migrate EPMA planning application from development server to production server. I am using LCM for the migration and have taken export of the HSS, EPMA, Planning and FR & WA artifacts. I am now importing these artifacts in to production server, however I can not proceed with migration of Planning artifacts through Migration Wizard as I got stuck on the "Destination" step where I got message as "There is no destination available to migrate".
    Please guide me on this...
    Thanks & Regards,
    AK

    Hi John,
    Please refer to my comments to reply:
    Break down the migration into product areas first, start with HSS and then migrate, then move on to planning and HSS, this should narrow down where the issue is
    That is what I am doing - I am migrating the artifacts separately i.e. I migrated the HSS first then migrated EPMA Architectue and at last I tried migrating the Planning artifacts during which I got stuck with selection of "Destination" for Planning artifacts.
    +"The planning applications need to exist first on your target environment."+
    For this I need to create a planning application manually before migrating, and since my planning application is EPMA enabled application and not a classic application I guess I should not create a planning application manually before starting migration. Please guide me on how can I ensure that planning application exist before migrating the same on to target environment
    Thanks & Regards,
    AK

  • I want to Pick Release in 11.5.9 through API , What API I can Used?

    Hi.expert
    I want to Pick Release through API in 11.5.9, What API I can Used?

    You need to apply patch 3438823 which provides the Pick Release Public API to create and release a picking batch and also provides the functionality to allow picking criteria of groups of items based on Item category and category sets and also provision is provided to "exclude/include only" ShipSets/SMCs in a batch.
    Check Note: 435444.1 - WSH_PICKING_BATCHES_PUB Package for Pick Release Public API does not Exist in Release 11.5.9
    https://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=435444.1

  • I am facing problem in loading data in ap_invoices_all  in R12 through API

    Hi,
    When I am trying to load data in R12 through API (ap_invoices_pkg. Insert_Row), I can see my record in base table ap_invoices_all but I can't find my record from frontend application.
    MAGSA AP Supervisor -> Invoices -> Entry -> Invoices.
    I will be very greatful if anyone can tell me the reason why I am not able to find my record.
    Thanks
    Ranjana

    I believe the issue is related to Multi Org Access Control (MOAC) - pl see MOS Doc 420787.1 - Oracle Applications Multiple Organizations Access Control for Custom Code - for a discussion.
    HTH
    Srini

  • Task Does not get triggered when User is created through API

    Hi,
    Each new user in our OIM environment is supposed to have a iPlanet account. I have configured the access policy for the same and it works.There is also a process task which needs to be triggered once the user is successfully created in the DS. Following is my issue:
    1.When the new user is created through the admin console, the user is provisioned successfully to DS as well because of the access policy and the task also gets triggered successfully.
    2. There is an approval workflow for another resource, at the end of which a user needs to be created through APIs in OIM. The user gets created successfully in OIM and also get provisionined to DS just like in the above use case. However, the task fails in this case. I see that the task is being triggered from the user's resource profile, but the status is rejected.
    Can someone please tell me why is this happening. I initially though there was some issue with my adapter for the task, but in case 1 it works just fine.
    Following is the exception I get as soon as the iPlanet connector finishes creating the user in DS:
    java.lang.ClassCastException: java.lang.String
    at com.thortech.xl.adapterGlue.ScheduleItemEvents.adpSETFIELDSONUSERCREATE.implementation(adpSETFIELDSONUSERCREATE.java:51)
    at com.thortech.xl.client.events.tcBaseEvent.run(Unknown Source)
    Thanks,
    Supreetha

    Hi,
    Have you checked the process data that you are passing to this adapter and check the mapping of process data to the adapter variable. Try to log the value which you get from process data. I got this error when I was trying to use the literal value from process data as "true" for a boolean value. This is a bug. This value is not actually a boolean value. It threw me error too sometimes back. Either you pass the boolean value from adaptor factory as a literal value or change the type boolean both in your code and the adapter.
    OIM works strangely. ;) All the best,
    Manila

  • Return Material Authorization through API

    Dear All,
    I create return sales order and want to make transaction in receiving form (RMA) through API or open Api,
    Is there any way to do that.
    I will be great thankful for your kind help.
    Thank

    Hi,
    As per my understsnding RMA functinality gets activated in RETURN AND REPAIRS process.
    it is not delt with notification.
    From notification.repair order - RAS is generated
    Return delivery
    Usage decesion in QM - once accepted by QM system create service order.
    In service order the tab RMA reflects automatically.
    Kapil

  • Direct provisioning through API - OIM 11g

    Hi,
    OIM 11g here. I am trying to use the APIs to make direct provisioning. What i have done till now:
    tcUserOperationsIntf userIntf = (tcUserOperationsIntf)ioUtilityFactory.getUtility("Thor.API.Operations.tcUserOperationsIntf");
    ResourceData rd = userIntf.provisionResource(userkey, objectkey);
    now, in the ResourceData object i have two ids, obiKey and ouiKey. Now i need to extract the process instance key with those numbers. How can i do this?
    Using the userIntf getObjects method i can get the list of objects provisioned, iterate over it and retrieve the process instance key of the object which matches obiKey and ouiKey. Is there an easier method to do this?
    Another question, which one is the process instance key, ORC_KEY or ORC_TOS_INSTANCE_KEY ?
    Last, how do i trigger the task responsible for provisioning given the filled process form?
    thx in advance

    Ok, i guess the process instance key is ORC_KEY.
    Now i am trying to provision through APIs a resource object (say AD User) to an OIM user. I have used the provisionResource(userkey, objectkey) method, but the Create User task is not put in the Resource History (there is only the System Validation Task), and i don't know how to look for it's task id to add it manually.

  • Submitting data through API without exposing DB credentials

    Submitting transaction / master data through API without exposing DB credentials
    I am developing a scenario where I will submit transaction / master data like sales order / master item to Oracle apps (EBS) through MS Excel via API / interface table but like to provide only apps (EBS) user credentials rather then DB credentials so DB password could not expose to normal end user. Please suggest something on same.
    [email protected]
    Thanks & regards,
    Sachin Gupta

    Sachin, you need a valid userid and password to connect to the database.
    Since these APIs are defined under apps, you need apps password to execute them.
    The workaround is that you define a new d/b userid.
    Grant execute on the API (and other objects as necessary) to this user.
    And then you call the api using the new userid and password.
    This way you are not exposing apps password. But since this means you have to grant a number of accesses to this new user.
    If you can use the interface tables, it becomes a little easier.
    All you have to do is grant insert access on a handful of interface to this new userid. And then you schedule a concurrent program that will process the interface records.
    If you absolutely can not expose ANY database password, then you can communicate with EBS using flat files. Your system creates a flat file on the server and a scheduled program in EBS reads the files and calls appropriate api.
    Hope this helps,
    Sandeep Gandhi

  • Can anybody tell me how to get INV available quantity of a item through API

    Hello,experts.
    Can anybody tell me how to get INV available quantity of a item through API?
    And offer any example for this.
    Thanks in advance

    Check from This table : MTL_ONHAND_QUANTITIES and MTL_ONHAND_QUANTITIES_DETAIL.
    Anyway just curious, if you able to access this forum (which requires internet connection), why you can't access TRM and IREP ?

  • Add approval task through API call

    Hello, I am attempting to solve the following problem.
    I have a UDF defined on the Resource Objects form (OBJ table), this filed contains a comma delimited list of OIM groups which is of size n (based on the resource object).
    I would like to create an approval task for each group in this list. In addition i would like the name of each task to show up as the group name. so when a user logs into the UI and looks at the approval details the see the approval task as the group name.
    I have been able to add a task using tcProvisioningOperationsIntf.addProcessTaskInstance API however this API does not allow me to modify 1) the group to assign the request to and 2) the name of the task.
    thanks

    Hey Kevin, thanks for responding.
    This query will allow me to get the process task key, so i can be added to the approval task via. tcProvisioningOperationsIntf.addProcessTaskInstance. However the issue is, no task currently exists. So before i can add an instance of the task i have to actually create a new task. but i was un-sure how to accomplish this through api calls.
    The goal here is to allow a list of groups to be configurable at the resource level without having to modify the approval process.
    thanks

  • How to get the process instance key so as to retry a rejected task through api while ad provisoing?

    Hi All,
    How to get the process instance key so as to retry a rejected task through API while AD provisioing state?
    API URL - http://docs.oracle.com/cd/E27559_01/apirefs.1112/e28159/toc.htm
    Thanks

    To retry a task that is in a rejected state, you use the SCH_KEY which is the task key.  In OIM, all rejected tasks are listed in the OTI table.  It contains all the important information about a rejected or pending task.
    You can use the APIs found in the tcProvisioningOperationsIntf class to retrieve open tasks.
    -Kevin

  • What is the difference between iPhone 5 trade in through the mail and in the store? If you trade it in the store, do you get the 200$ gift card right away?

    What is the difference between iPhone 5 trade in through the mail and in the store? If you trade it in the store, do you get the 200$ gift card right away?

        danamd89,
    Great question. We can understand wanting to get your money right away. If you go into the store and you trade in your iPhone and purchase a new iPhone that is in stock you will receive the gift card immediately. If you do it online before 9/30 you will have to ship the device after you receive your new iPhone and then you will get a gift card in 4-6 weeks.
    RobinD_VZW
    Follow us on twitter @VZWSupport

Maybe you are looking for