BRF+ Deleting functions within object nodes

Hi Experts,
We are a large FMCG company and are implementing SAP Master Data Governance module for managing our material master data.
Hence, we have chosen BRF+ as the business rule engine to drive SAP MDG. SAP MDG version is EHP5
To create a ruleset, I initially create an object node within the 'Trigger tab' in the catalog. This object node is created with a naming convention DERIVE_ENTITY_ATTRIBUTE. I have then successfully created a function within the object and defined a ruleset as well.
Now if I delete the object node; it gets deleted from the trigger function tab. However if I create a new object node with a similar function, the system does not allow me to create the function as it throws a warning message stating that the function still exists.
Hence I wanted to know HOW DO I DELETE THE FUNCTION if the Object node for that function has already been deleted?
Is there any option to search the function and delete it?
Thanks in advance
Edited by: Reenav on Nov 29, 2011 12:29 PM

Hi Carsten,
Where do you actually restore an object though?  I don't see a button on the UI. 
I have deleted an object by mistake, but since I don't have versioning turned on I cannot do a version restore.  However I can still see the deleted object since it's only logically deleted?
If you do not have versioning turned on is it then impossible to restore?
Thanks,
Lee

Similar Messages

  • Delete Itab within Loop at ITAB ?

    Hi,
    Help needed to remove this delete from within the loop.
    {code
    Loop at itab where <condition>.
    <statements>
    delete itab index sy-tabix.
    Exit.
    Endloop.
    {code}
    The functionality of the code should not be affected.
    Useful help would be awarded

    Hi,
    Instead of deleting data from itab use another internal table of same type (itab1) and append it. Use itab1 data for further processing.
    check below logic...
    {code
    Loop at itab1 into wa_itab1 where <condition>.
    <statements>
    if <condition>
    append wa_itab1 to itab2.
    exit.
    endif.
    Endloop.
    refresh itab1.
    itab1[] = itab2[].
    {code}
    regards,
    N M Poojari.

  • Unable to expand table (or 'any' object) node - permissions issue?

    I am the dba for a database and hence have access to the system user. When I connect to the db through SQL Developer, I can expand the table node under any user and list tables. As I can with any object node.
    I now want to create an admin user that has restricted capabilities, one of which will be to view objects, such as tables etc..
    (I will ultimately do this via a role to allow multiple users to have the admin capabilities, but for now have just created an admin_user userid).
    However, when I connect to the database using this admin_user userid, I am unable to expand any object node.
    I have played with different permissions, granting 'select any dictionary', 'select_catalog_role', 'select on dba_tables' but the user still can not view any objects via the appropriate node. eg. attempting to go to Other Users - username - Tables just shows nothing. (There are no filters).
    However the admin_user can run a SQL command to view the tables. eg. Select * from dba_tables, will list all tables for all users within the database. So they DO appear to have the appropriate access.
    So why can't they see the tables in the tables node?
    Is there some piece of configuration within SQL Developer itself that I have overlooked?
    Cheers

    I am the dba for a database and hence have access to the system user. When I connect to the db through SQL Developer, I can expand the table node under any user and list tables. As I can with any object node.
    I now want to create an admin user that has restricted capabilities, one of which will be to view objects, such as tables etc..
    (I will ultimately do this via a role to allow multiple users to have the admin capabilities, but for now have just created an admin_user userid).
    However, when I connect to the database using this admin_user userid, I am unable to expand any object node.
    I have played with different permissions, granting 'select any dictionary', 'select_catalog_role', 'select on dba_tables' but the user still can not view any objects via the appropriate node. eg. attempting to go to Other Users - username - Tables just shows nothing. (There are no filters).
    However the admin_user can run a SQL command to view the tables. eg. Select * from dba_tables, will list all tables for all users within the database. So they DO appear to have the appropriate access.
    So why can't they see the tables in the tables node?
    Is there some piece of configuration within SQL Developer itself that I have overlooked?
    Cheers

  • How do I view a FUNCTION within a Package Body

    I can see the FUNCTION being executed within the Package...
    FUNCTION Stop_Refresh_AsBilled
    RETURN Number;
    And within Oracle SQL Developer and using the Connection and "Packages" part of the Schema, I see the Function Name. However, when I <Double-Click> on the FUNCTION Name within the Schema, it is taking me to where the FUNCTION is executed within the Package and NOT to the PL/SQL Code that actually makes up the FUNCTION.
    Am I missing something here??? Maybe in my Preferences??? How can I drill down further to actually find the FUNCTION Definition and PL/SQL Code that makes up the FUNCTION within the Package Body???
    I can bring up the Package Body and Search on the FUNCTION that way. I'm hoping there is an easier way however to drill down to the actual PL/SQL Code that makes up the FUNCTION.
    I hope I am being clear in my explanation here.
    Thanks for your review and I am hopeful for a reply.
    PSULionRP

    Jim, opening the body node to see all functions and procedures sometimes does not work in 3.0
    I have many packages generated by Feuerstien's CodeGen utility. The Query package appears just fine with every function and procedure appearing as expected in both header and body nodes. However, the Change Package fails miserably. Header shows all functions and procedures fine, but the body node only shows the top private declarations of variables and types. Not one function or procedure appears in the expanded node.
    The only thing I can figure is that the Change package of about 30 named items has many of the same name+ with overloaded parameters. I think SQL Dev is having problems parsing the names in the body even though it does fine with the names in the header of the package--perhaps because of many private variables and PRAGMA's declared at the top of the body.
    Both packages have about 30 functions, but the Change package body has over 2000 lines while the Query package has fewer than 500.
    Just adding to the mystery--but I think it merits a bug report (gotta figure out where to report it now).

  • Batch Delete on Custom Objects

    I have only just noticed that there is no batch delete on Custom Objects. I have read over the R16 release notes and I cannot see this as an enhancement, is anyone able to confirm if this functionality is actually included in R16.
    As this is only a few weeks away before we upgrade.

    Hi, I have an R16 account and i dont see the batch delete feature available for custom object :-(
    -- Venky CRMIT

  • IIs it possible to retrive deleted Function Module

    Hi all,
    i just want to know is it possible to retrive deleted Function Module .
      the request is not released yet.

    Hi Sai,
    Its not possible. (Confirm by contacting ur Basis people, if they can help).
    But the following is valid only if your function module is(or was) a transportable object.
    Go to SE37, enter your function module name and create. Assign it to the same function group and have the same interface and description. Save it, activate it.
    Now go back to SE37, enter the function module name, in the menu, 'Utilities>Versions>Version Management'. Now you should see all your previous versions. Select the most recent past version. Do a retrieve and then activate it as the latest version.
    Not sure if it works. But still give it a try.
    Best Regards,
    Anjali
    Message was edited by: Anjali Devi

  • Document(object, node-set)

    Using xsql 1.0.4.1, I'm having some trouble using the document(object, node-set) function defined in the XSLT 1.0 recommendation, sect 12.1:
    http://www.w3.org/TR/xslt#function-document
    I have a tag in my source xml document which contains a reference to another xml document. I want to construct an XPath expression for this other xml document. The path to the other xml document is specified relative to the source document.
    I'm doing something like this:
    Source Document:
    <blah>
    <some-tag redirect="answer.xml" />
    </blah>XSL:
    <xsl:template match="blah/some-tag">
    <xsl:variable name="redir" select="document(@redirect, / )" />
    <xsl:apply-templates select="$redir//somepath" />
    </xsl:template>
    ...However, Oracle XSLT always comes back with the following error:
    XSL-1013: Error in expression 'document(@redirect, / )'.I also get this error if I try
    document(@redirect, document(''))which is given as an example on pg 446 of Steve's book (but not what I want, since it resolves relative to the stylesheet).
    document(@redirect)works fine, but again is not what I want.
    Am I doing something wrong?
    Brian

    This is Oracle Bug# 1722555, hopefully which will be fixed in the 9.0.1.0.0 release. Currently the two-argument version of the document() function is not recognized properly.

  • Delete all the objects in a package

    Hi Guys,
    My requirement is that i need to write a program to delete all the objects in a package. In the selection screen i enter the package name and then i get all the objects in the package from TADIR table and display them in an ALV.
    There when i select a object and press the delete button ,the object (program ,table, domain,data element etc..) should be deleted .
    For this i tried to DEBUG in SE80 and tried to know how SAP is trying to delete the object. But i couldnot unterstand which Function Module or which Class and Method it uses to delete an object.
    Guys please let me know how it can be done.
    Regards,
    Chaithanya.

    hi
    check this ...
    REPORT  zxxxxxx.
    TYPE-POOLS: slis.
    DATA: x_fieldcat  TYPE lvc_s_fcat,
          it_fieldcat TYPE lvc_t_fcat,
          g_grid    TYPE REF TO cl_gui_alv_grid,
          x_layout TYPE lvc_s_layo,
           g_custom_container type ref to cl_gui_custom_container,
            g_container type scrfname value 'I_CONTAINER'.
    types: BEGIN OF ty_itab ,
            check(1) TYPE c,
           PGMID LIKE TADIR-PGMID,
                 END OF ty_itab,
    data:itab type standard table of ty_itab,
           itab1 type TADIR.
      call screen 100.
    *&      Module  STATUS_0100  OUTPUT
          text
    module STATUS_0100 output.
      SET PF-STATUS 'ZSTATUS100'.
      if g_custom_container is initial.
        create object g_custom_container
               exporting container_name = g_container.
        create object g_grid
               exporting i_parent = g_custom_container.
    SELECT PGMID
      FROM TADIR
       INTO CORRESPONDING FIELDS OF TABLE itab where DEVCLASS = selection screen package
    x_fieldcat-fieldname = 'CHECK'.
    x_fieldcat-seltext = 'CHECK'.
    x_fieldcat-checkbox = 'X'.
    x_fieldcat-edit = 'X'.
    x_fieldcat-tabname = 'ITAB'.
    x_fieldcat-col_pos = 1.
    APPEND x_fieldcat TO it_fieldcat.
    CLEAR x_fieldcat.
    x_fieldcat-fieldname = 'PGMIDt'.
    x_fieldcat-seltext = 'PGMIDt'.
    *x_fieldcat-edit = 'X'.
    x_fieldcat-tabname = 'ITAB'.
    x_fieldcat-col_pos = 2.
    APPEND x_fieldcat TO it_fieldcat.
    CLEAR x_fieldcat.
    CALL METHOD g_grid->set_table_for_first_display
      EXPORTING
        IS_LAYOUT                     = x_layout
      CHANGING
        it_outtab                     = itab
        IT_FIELDCATALOG               = it_fieldcat.
    endif.
    endmodule.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
          text
    module USER_COMMAND_0100 input.
    DATA: ls_outtab LIKE LINE OF itab.
    DATA: l_valid TYPE c,
          ok_code like sy-ucomm,
           r_ucomm LIKE sy-ucomm,
           ls_celltab TYPE lvc_s_styl,
          lt_celltab TYPE lvc_t_styl,
          l_index TYPE i.
    CALL METHOD g_grid->check_changed_data
      IMPORTING
        e_valid = l_valid.
    IF l_valid EQ 'X'.
    case sy-ucomm.
    when 'DELETE'.
    LOOP AT itab INTO ls_outtab where check = 'X'.
       move ls_outtab-object to itab1.
      delete TADIR from itab1.
    ENDLOOP.
    endcase.

  • How do you delete folders within collections in mini bridge?

    How do you delete folders within collections in mini bridge?

    his chapter on Mini Bridge where he talks about organizing your photos getting rid of some and making a folder or file sorry not certain of the terminology under Collections in mini bridge to acess your "keepers" perse.
    Not familiar with this book but if Scott is talking about using mini bridge for sorting images he is way out of line. Mini Bridge (to my opinion next to useless since they screwed it up for CS6 but that is another discussion) should be seen as a shortcut to Bridge itself when working in Photoshop on complex tasks of image or album compilation and prevent you from switching back and forward between the two applications while working on a project.
    Unfortunately some people thought that it might be useful to add more functions to it and now users start believing they don't need bridge itself for this.
    Please use Bridge itself for sorting etc and also try to get hold of a copy of 'Real World Camera Raw' written by Bruce Fraser and Jeff Schewe. They have an edition for about all CS versions and this book will let you know how to really use the power of Bridge and Adobe Camera Raw

  • Deleting function pool

    hello experts,
    i want to delete function pool from my developement client as it is not assigned to any function  group.
    how to do it..??
    thnax in advance..

    Hi suchitra B. dange,
    questions like this come from people that still use whatever transaction instead of SE80 ABAP workbench.
    Start SE80, select function group, give name. In the tree, right click on object, delete.
    Regards,
    Clemens

  • GW7 - Unable to delete Domain & MTA objects after crash

    Yes...I know there are similar threads already on the forums...but I'm still stuck :)
    Had a server crash - which was running GW7 WebAccess & hosted a Domain (Domain_3 in our case). And naturally, this server was put together by a long gone consultant years ago - who left little documentation and no current backup (well, we thought we had one...but it didn't restore). So I was left to wing it on my own.
    Rebuilt a server from scratch (NW 6.5 SP8). The server sits it's own tree and is in a DMZ off of a BorderManager server (multi-homed - and yes...life on the trailing edge of technology).
    I was unable to delete or use the existing GW objects (Domain_3, MTA or WebAccess)...so I created a new domain (Domain_2) and reinstalled WebAccess and the MTA. I used the same IP addresses/ports as the original/crashed server.
    This got us back on our feet and WebAccess seems to be working as expected.
    I've since tried following various TIDS about grafting the legacy objects into another part of the tree, etc. Unfortunately, the grafting process likewise failed after seemingly creating the domain & MTA objects. An error message indicated that I (as admin) didn't have sufficient rights (hard to believe...). So now I have two Domain_3 objects (w/MTAs, etc.) in different parts of the tree - which are non-functional and un-delete-able (if that's a word).
    I also managed to create another temporary domain object (Domain_9) in testing - which now won't allow me to delete it either (ugh)!
    I also found numerous pending GW operations - including the deletes, modifies, etc.
    Digging deeper - I have some stuck obituaries that are all related to the domain objects that I'm trying to get to disappear. Of course, I tried to free these stuck obituaries following various TIDs (which I've done in the past for other non-groupwise objects stuck in limbo) - but failed. I'm not sure if this is a cause, an effect, or just collateral damage...
    So I'm 10 miles past frustration...and have obviously hosed this pretty well...
    Any suggestions or guidance on where to focus my attention first?

    That's how I ended up with a 2nd copy of Domain_3 :) I created a temporary container - and tried to graft Domain_3. It created a domain object and a MTA - before failing (the error said I had insufficient rights to complete the task). Naturally, I couldn't delete these new objects either once they were created I performed this action as "admin" - authenticated to both trees (the GW objects are actually in our production tree).
    KM

  • Batch deletion of Custom Object data

    Hi,
    I have a requirement to delete a Custom Object records from CRM OD application. Here for this Custom Object, I have to delete all the reords data at one time run, iam trying to delete the data using "CustomObject3Delete_Input" functionality and for that iam writing the following request code:
    <soapenv:Body>
    <ns:CustomObject3Delete_Input>
    <data:ListOfCustomObject3>
    <!--Zero or more repetitions:-->
    <data:CustomObject3>
    </data:CustomObject3>
    </data:ListOfCustomObject3>
    </ns:CustomObject3Delete_Input>
    </soapenv:Body>
    after runnig the above code, i got an response (error) like:
    <SOAP-ENV:Fault>
    <faultcode>SOAP-ENV:Server</faultcode>
    <faultstring>No user key can be used for the Integration Component instance 'Custom Object 3'.(SBL-EAI-04397)</faultstring>
    <detail>
    <siebelf:siebdetail xmlns:siebelf="http://www.siebel.com/ws/fault">
    <siebelf:logfilename>OnDemandServicesObjMgr_enu_246474.log</siebelf:logfilename>
    <siebelf:errorstack>
    <siebelf:error>
    <siebelf:errorcode>(SBL-EAI-04397)</siebelf:errorcode>
    <siebelf:errorsymbol>IDS_ERR_EAI_SA_NO_USERKEY</siebelf:errorsymbol>
    <siebelf:errormsg>No user key can be used for the Integration Component instance 'Custom Object 3'.(SBL-EAI-04397)</siebelf:errormsg>
    </siebelf:error>
    </siebelf:errorstack>
    </siebelf:siebdetail>
    </detail>
    </SOAP-ENV:Fault>
    Any responses or suggestions are highly appreciable. Thanks in advance:).
    Regards,
    Kashyap

    Here is the query for a single delete
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAPSDK1="urn:crmondemand/ws/ecbs/customobject3/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:SOAPSDK2="urn:/crmondemand/xml/CustomObject3/Data">
    <SOAP-ENV:Header>
    <wsse:Security>
    <wsse:UsernameToken>
    <wsse:Username>your pod</wsse:Username>
    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">yourpassword</wsse:Password>
    </wsse:UsernameToken>
    </wsse:Security>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
    <SOAPSDK1:CustomObject3Delete_Input>
    <SOAPSDK2:ListOfCustomObject3>
    <CustomObject3>
    <Id>AAPA-6R09JC</Id>
    </CustomObject3>
    </SOAPSDK2:ListOfCustomObject3>
    </SOAPSDK1:CustomObject3Delete_Input>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    For multiple delete it would look like - up to 20 objects per delete
    <SOAP-ENV:Body>
    <SOAPSDK1:CustomObject3Delete_Input>
    <SOAPSDK2:ListOfCustomObject3>
    <CustomObject3>
    <Id>AAPA-6R09JC</Id>
    </CustomObject3>
    <CustomObject3>
    <Id>AAPA-6R09JC</Id>
    </CustomObject3>
    <CustomObject3>
    <Id>AAPA-6R09JC</Id>
    </CustomObject3>
    <CustomObject3>
    <Id>AAPA-6R09JC</Id>
    </CustomObject3>
    <CustomObject3>
    <Id>AAPA-6R09JC</Id>
    </CustomObject3>
    </SOAPSDK2:ListOfCustomObject3>
    </SOAPSDK1:CustomObject3Delete_Input>
    </SOAP-ENV:Body>

  • Deletion of Lock object thru' program

    Hi All,
         I want to delete a lock object from program.
    i m using the following code, but after this also still the object is listed in SM12.
    CALL FUNCTION 'DEQUEUE_ESORDER'
    EXPORTING
    *   MODE_AUFK       = 'E'
       MANDT           = SY-MANDT
       AUFNR           = P_ZPP_TBL_PRODR_AUFNR
    *   X_AUFNR         = ' '
    *   _SCOPE          = '3'
    *   _SYNCHRON       = ' '
    *   _COLLECT        = ' '
    PLs suggest.
    With Rgds,
    S.Bharani

    Hi,
    Refer the following links:
    Link: [Example Program: SAP Locking|http://help.sap.com/saphelp_nw70/helpdata/en/41/7af4c8a79e11d1950f0000e82de14a/frameset.htm]
    Link: [Example for Lock Objects |http://help.sap.com/saphelp_nw04/Helpdata/EN/af/22ab01dd0b11d1952000a0c929b3c3/content.htm]

  • Return value from function within package

    Hi,
    There is a function within a pl/sql package that I am trying to get data from. The problem is that the data returned can be up to 32,767 chars (varchar2 limit).
    It accepts 3 input parameters and returns on varchar2.
    The only way I can get it to work is using this syntax:
    ==================================
    variable hold varchar2(4000);
    call TrigCodeGenerator.GenerateCode(VALUE1', 'VALUE2','VALUE3') into :hold;
    print hold;
    =====================================
    However, if the data returned is greater than 4000 then I get this error:
    ERROR at line 1:
    ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    ORA-06512: at line 1
    I can't increase the size of the variable (hold) as there seems to be a limitation on this type of variable.
    Also, I am running this in sql plus worksheet. Will it limit the display of the data (assuming, that someone can get the whole 32,767 chars displayed back) ?
    Thanks in advance,
    Ned

    Never mind,
    I declared the variable hold as clob and set the long and longchunksize parameters to 100,000 and it seems to work.

  • Function within package error

    Hi friends,
    I have a package called xxhw_ams_utils with a function in it get_salary
    When i tried to execute that function within the package like the below manner means, im getting error like
    ORA-00904: "XXHW_AMS_UTILS"."GET_SALARY": invalid identifier
    select apps.xxhw_ams_utils.get_salary(1072) from dualwhere 1072 is the assignment id that im passing for testing purpose.
    This is the actually the get_salary function which is inside the package xxhw_ams_utils coding
    FUNCTION get_salary
    (p_asg_id IN NUMBER)
        RETURN VARCHAR2 IS
    l_gross VARCHAR2(20);
    l_basic VARCHAR2(20);
    BEGIN
    select eev.screen_entry_value
    into l_basic
           from   pay_element_entry_values_f eev,
                  per_pay_bases              ppb,
                  pay_element_entries_f       pe
           where  ppb.pay_basis_id  +0 = 61
           and    pe.assignment_id     = 1072
           and    eev.input_value_id   = ppb.input_value_id
           and    eev.element_entry_id = pe.element_entry_id
           and    sysdate between
                            eev.effective_start_date and eev.effective_end_date
           and    sysdate between
                            pe.effective_start_date and pe.effective_end_date;
    EXCEPTION
    WHEN OTHERS THEN RAISE;
    END; Suppose if i executed like the below manner means, i getting the correct result
    select eev.screen_entry_value
    --into l_basic
           from   pay_element_entry_values_f eev,
                  per_pay_bases              ppb,
                  pay_element_entries_f       pe
           where  ppb.pay_basis_id  +0 = 61
           and    pe.assignment_id     = 1072------------------------------------>assignment id (that im passing)
           and    eev.input_value_id   = ppb.input_value_id
           and    eev.element_entry_id = pe.element_entry_id
           and    sysdate between
                            eev.effective_start_date and eev.effective_end_date
           and    sysdate between
                            pe.effective_start_date and pe.effective_end_date;Suppose if i execute like the below means it is returning error like invalid character.
    select apps.xxhw_ams_utils.get_salary(1072) from dualWhy might be the problem friends.
    Brgds,
    Mini

    Hi Giri,
    Thanks yes i didnt mentioned that function get_salary in the package specification and now the package is compiled successfully,
    But when i tried to execute i get the error like
    ORA-06503: PL/SQL: Function returned without value
    ORA-06512: at "APPS.XXHW_AMS_UTILS", line 177when i execute like
    select apps.xxhw_ams_utils.get_salary(1072) from dualBrgds,
    Mini

Maybe you are looking for