Driving processing with user defined rules

Hi,
I am looking for some examples of user defined rules for file processing.
So I have a file loaded in to the application in a staging table, user will want to define rules to process the data and then an output will be created.
Very vague question I know but has anyone got any examples where they did something similar which might help?
Thanks.

Roger,
Here's one that I found that may not look very simple but it actually is if you just break it down piece by piece.
create or replace FUNCTION              "SQL_IP_SUBNET" (
p_octet1 in varchar2,
p_octet2 in varchar2,
p_octet3 in varchar2,
p_octet4 in varchar2,
p_slash in varchar2,
p_status in varchar2)
return varchar2
as
l_select varchar2(1000);
l_octet1 varchar2(200);
l_octet2 varchar2(200);
l_octet3 varchar2(200);
l_octet4 varchar2(200);
l_slash varchar2(200);
l_status varchar2(200);
l_cidr varchar2(50);
l_where varchar2(1000);
l_order_by varchar2(100);
l_sql varchar2(32767);
begin
l_select := q'!select id, get_ip_addr(octet1, octet2, octet3, octet4) ip_addr, slash, description, !';
l_select := l_select || q'! octet1, octet2, octet3, octet4 from poc_subnets where 1=1!';
if (p_octet1 is not null) then
l_octet1 := q'! and octet1=!' || p_octet1;
end if;
if (p_octet2 is not null) then
l_octet2 := q'! and octet2=!' || p_octet2;
end if;
if (p_octet3 is not null) then
l_octet3 := q'! and octet3=!' || p_octet3;
end if;
if (p_octet4 is not null) then
l_octet4 := q'! and octet4=!' || p_octet4;
end if;
if (p_slash is not null) then
if substr(p_slash,1,1) != '/' and length(p_slash) = 2 then
  l_cidr := '/'||p_slash;
else
  l_cidr := p_slash;
end if;
l_slash := q'! and slash='!' || l_cidr || q'!'!';
end if;
if length(l_octet1) > 0 then
l_where := l_octet1;
end if;
if length(l_octet2) > 0 then
l_where := l_where || l_octet2;
end if;
if length(l_octet3) > 0 then
l_where := l_where || l_octet3;
end if;
if length(l_octet4) > 0 then
l_where := l_where || l_octet4;
end if;
if length(l_slash) > 0 then
l_where := l_where || l_slash;
end if;
if length(p_status) > 0 then
case
  when p_status = 'YES' then
   l_status := q'! and assigned = 'YES'!';
  when p_status = 'NO' then
   l_status := q'! and assigned = 'NO'!';
  else
   l_status := null;
end case;
end if;
if length(l_status) > 0 then
l_where := l_where || l_status;
end if;
-- do the order by clause
l_order_by := q'! order by octet1, octet2, octet3, octet4!';
if length(l_where) > 0 then
l_sql := l_select||l_where||l_order_by;
else
l_sql := l_select||l_order_by;
end if;
return l_sql;
end;
Just so you know, this is not necessarily the best way to do what you're asking. It does get the job done however.
If you inspect the code it's basically just a bunch of string concatenation operations based on the presence or absence of each of the input parameters. Pretty much what you were asking about.
Earl

Similar Messages

  • User defined rule for missing triples

    Hi,
    i would like to know if there is a way to define a user defined rule for triples that are not contained in a model. With curly brace syntax it could be something like this:
    INSERT INTO mdsys.semr_validation_rb VALUES(
    'test_rule',
    '{?s ?p ?o. OPTIONAL{?s rdf:type ?t}}',
    't is null',
    '(?s <hasType> "false")',
    null);
    Unfortunately this is not working. Has anybody a suggestion to solve this problem with user defined rules?

    Hi,
    This is related to the following post.
    built-in primitives(noValue,remove) for user defined rules
    Note that there is something you need to pay a bit attention to.
    Say your original graph contains
    :John :fatherOf :Mary
    but not any type classification for :John (i.e. no match for {:John rdf:type ?t})
    Assume you add the following triple according to the rule you described
    (:John <hasType> "false")
    Now, what happens if :John is classified as a :Person (or :Parent, :Father),
    do you want to withdraw* :John <hasType> "false"?
    Thanks,
    Zhe

  • User-defined rules with SPIN (SPARQL CONSTRUCT)

    Hi,
    We are looking at SPIN as an alternative to define and execute user-defined rules. It is very expressive and in that point looks superior over Jena, SWRL and Oracle type of user-defined rules with IF (filter) -> THEN type of syntax. Although, SPIN is TopQuadrant's, it is entirely SPARQL, and Oracle supports SPARQL CONSTRUCT via Jena Adapter. TopBraid Composer provides and excellent tool support and rule editor for SPIN rules as well.
    There is no problem to execute SPIN rules via Jena Adapter, and I believe even via TopQuadrant's SIN API, which is TopQuadrants's SPARQL based infrence engine's API.
    My question is about whether Oracle has looked into supporting SPARQL CONSTUCT based user-defined rules in its native inference engine?
    Do you have a recommendation for how to use SPIN based user rules in combination with Oracle inference today?
    Thanks
    Jürgen

    Hi Jürgen,
    We are actually looking into a general mechanism that allows users to plug in their own queries/logic during inference. Thanks very much for bringing SPIN up. This general mechanism is very likely going to cover CONSTRUCT queries.
    To extend the existing inference engine using the existing Jena Adapter release, one possible way is as follows.
    1) Assume you have an ontology (model) A.
    2) Create an empty model B.
    3) run performInference on both A and B using OWLPrime.
    4) run SPARQL CONSTRUCT queries against A, B and inferred data
    5) store the query results (in the form of Jena models) back into model B.
    6) If the size of model B does not change, then stop. Otherwise, repeat 3)
    Note that model B is created to separate your original asserted data from inferred data.
    If you don't need such a separation, then don't create it.
    Thanks,
    Zhe Wu

  • Decidability issue of oralce user defined rules

    Hi,
    Accoring to some online posts (http://weblog.clarkparsia.com/2007/08/27/understanding-swrl-part-2-dl-safety/, http://protege.cim3.net/cgi-bin/wiki.pl?SWRLLanguageFAQ), SWRL in general is undecidable.However, we can add some restrictions to SWRL to regain decidability: Variables in DL Safe rules bind only to explicitly named individuals in ontology. Adding this restriction is sufficient to make SWRL rules decidable. So, I'm wondering how Oracle user defined rules achieve the decidability. Does it adpot the way simliar to SWRL? Thanks a lot in advance.
    Hong

    Hi Hong,
    This is a good question. Yes we have adopted a similar idea. The forward chaining based inference engine in Oracle Database will only bind existing known RDF resources to variables in rules. We will not generate a new RDF resource that does not previously exist in the ontologies. This is very important because it ensures the inference process will finish in a finite amount of time.
    The above does not apply to user defined inferencing (a 12.1 new feature) though.
    Thanks,
    Zhe

  • Retain standard SAP order type after copying with user defined order type

    Hello SAP Gurus,
    We have a requirement of retaining the standard SAP order types after copying with User defined order types. But the issue is we don't want to see the standard SAP order type such as PM01, PM02 in production system while using transaction like IW31 etc.
    Is there anybody who has answer to retain these stanadard SAP order types without deleting from system configuration?
    Thanks in advance.
    Cheers,
    Vaibhav

    Vaibhav,
    When you F4 on the order type field in IW31 you will get the popup showing the order type list. At the top of this list is a button with a green "+" sign (Insert in personal list).
    You can use this button to select your favourite list.
    This function is available in most F4 drop-down lists.
    However, you cannot set this setting for all users. You will need to write an ABAP program to do this.
    PeteA

  • How to use negation in user defined rules?

    Hi,
    Can you please show me an example to use negation in user defined rule? I created a rule like below (the rule says if a patient has a fever problem and not have penicillin hypersensitivity, then recommend medication1):
    INSERT INTO mdsys.semr_myMedicineRB VALUES('rule1',
    '(?p rdf:type :Patient) (?p :present ?c1) (?c1 rdf:type :Fever) (?c2 rdf:type :Penicillin_Hypersensitivity)',
    '(NOT_EXISTS(p :present c2))',
    '(?p :recommendation :medication1)',
    SEM_ALIASES(SEM_ALIAS('','http://www.example/medicine#')));
    The rule successfully inserted into the rulebase. However, I cannot pass the entailment creation phase and got the errors:
    ORA-29532: Java call terminated by uncaught Java exception: java.sql.SQLException: Missing IN or OUT parameter at index:: 1
    ORA-06512: at "MDSYS.SDO_SEM_INF_INTERNAL", line 16453
    ORA-06512: at "MDSYS.SDO_SEM_INFERENCE", line 302
    ORA-06512: at "MDSYS.SDO_SEM_INFERENCE", line 352
    ORA-06512: at "MDSYS.RDF_APIS", line 118
    ORA-06512: at line 2
    29532. 00000 -  "Java call terminated by uncaught Java exception: %s"
    *Cause:    A Java exception or error was signaled and could not be
               resolved by the Java code.
    *Action:   Modify Java code, if this behavior is not intended.
    According to the post built-in primitives(noValue,remove) for user defined rules, it seems negation is not supported in user defined rules. Can you please advice how to implement negation in user defined rules?  Thanks a lot in advance.
    Hong

    Hi Hong,
    Let's look at this similar but simplified problem:
      if (?p  rdf:type  :Patient) and (NOT_EXISTS(?p  :present  :c2)) ==> (?p :recommendation :medication1)
    You can use something like this in the user defined inferencing:
    -- First get the numeric IDs for the relevant URIs
    recomID := sdo_sem_inference.oracle_orardf_add_res('http://..../recommendation');
    medID := sdo_sem_inference.oracle_orardf_add_res('http://..../medication1')
    rdfTypeID := sdo_sem_inference.oracle_orardf_res2vid('... full URI for rdf:type');
    patientID := ...
    presentID := ...
    c2ID := ...
    -- Now this query will find out ?p that satisfy (?p  rdf:type  :Patient) but not
    -- (?p  :present  :c2)
    sqlStmt := '
      select ids1.sid  sub
         from ' || src_tab_view || ' ids1
        where ids1.pid= ' || to_char(rdfTypeID,'TM9') || '
          and not exists (
             select 1
               from ' || src_tab_view || '
              where sid = ids1.sid
                and pid = ' || to_char(presentID, 'TM9') || '
                and oid = '|| to_char(c2ID,'TM9') || '
    insertStmt := '
      insert /*+ parallel append */
       into ' || output_tab || '(sid, pid, oid)
      select sub, '||to_char(recomID,'TM9') || ',' || to_char(medID,'TM9') || '
       from (' || sqlStmt || ')'
    More details can be found in
    http://docs.oracle.com/cd/E16655_01/appdev.121/e17895/inference_extension.htm#CHDDBGEC
    Hope it helps,
    Zhe Wu

  • Problem with user-defined functions in XQuery String

    hello
    i've a problem with user-defined functions in XQuery String
    details are here (the code is not Human-readable via forum's embedded editor ?? strange)
    http://docs.google.com/Doc?id=ddqwddsr_21c96d9x
    thanks !!

    See
    michaels>  select xmlquery('declare function local:test_function($namecmp as xs:string?, $inputtype as xs:string?) as xs:string?      
                        return {$inputtype}
                     local:test_function("1","2")' returning content) o from dual
    Error at line 5
    ORA-19114: error during parsing the XQuery expression:
    LPX-00801: XQuery syntax error at '{'
    3                       return {$inputtype}
    -                              ^
    michaels>  select xmlquery('declare function local:test_function($namecmp as xs:string?, $inputtype as xs:string?) as xs:string?      
                        $inputtype
                     local:test_function("1","2")' returning content) o from dual
    O   
    2   
    1 row selected.

  • Display of document line items with user defined fields

    Hi all,
    I have created two user defined fields in CI_COBL structure and they are available on OBC4 screen. I maintained  optinal for entry in the screen layout. I posted one document with user defined fields and saved.
    Now the document is updated in BSEG table. I then display the document, and it display the doucment
    But when i double click on the one of the line items system gives an error that there is some problem in customising and entries missing in Table COBM.
    I checked OXK3 and see that in field information for user fields, it says entries maintained in table COBM.
    But still i couldnt display my line items in detail.
    Any solutions
    Thanks in advance
    Ram

    Yes your are looking at the correct sap note.
    Things look pretty straight forward in the notes documentation.
    1)Extend the VBKRED structure with the fields you want.
    2)Populate thse values in the user exit in program DBKMVF02 in FORM routine USER_EXIT_FUELLEN_XVBKRED.
    For extending a standard structure you need to create a zstructuree in se11 first and then append it to the standard structure.
    In your case you need to  extend VBKRED_EX1 structure rather than VBKRED.
    Regards,
    ravi

  • Error erase Queries in Query Manager- The query is used with user-define...

    Hello Experts
    I have deleted a User Field that had a Formatted Search and now I can not remove it because it is linked according to a UF, the error message is as follows:
    "The query is used with user-defined values [Message 952-23]"
    There will be a way to resolve this issue???
    Thanks in advance

    Hi Juan,
    I have tried this very limited, but the formid, is this a number in your case?
    SELECT * from cshs t0 inner join ouqr t1 on t0.queryid = t1.intrnalkey
    where t1.qname = '[%0]'
    Running this query I can get the form id that I need to recreate, but I have a feeling you already know the form id, is this correct?
    - Is there an error when you try to recreate the form id?
    - Will it not let you recreate the same form id because the id is given by the system?
    If it is not possible to recreate the form id, please prepare a backup and log a message. Support should be able to correct the entry in table cshs.
    Hope it helps.
    Jesper

  • About user defined function in user defined rule

    Hi,
    I am wondering if I can use a user defined function in a user defined rule in oracle sem.. I've seen examples of user defined function used in sparql query filter clause in that dev. guide. However, I don't know if I can define a function in oracle sem. database and use it in the rule body or head. For example, I want to define a duration function that calculate the date difference between two dates.  Then, I want to define a rule like this: event1 :has_start_date d1 and event1: has_end_date d2 and duration (24, d1,d2) then event1:date_satisfiable "yes". Does oracle support this kind of rule? Thank you very much.
    Hong

    Hi Hong,
    The user defined rules are quite similar to a CONSTRUCT SPARQL query, where the FILTER clause is implemented in SQL.
    I think we have already written rules like you want :
    You have to write a PL/SQL FUNCTION that returns a NUMBER (not a BOOLEAN, think you are in SQL) :
    FUNCTION DURATION(HOURS INTEGER, D1 VARCHAR2, D2 VARCHAR2) RETURN INTEGER
    IS
    BEGIN
         IF(.................)
            THEN RETURN 1;
            ELSE RETURN 0;
         END IF;
    END;
    Maybe you will have to GRANT EXECUTE ON DURATION TO MDSYS.
    Then include the following in the FILTER clause of the Rulebase "[owner].duration (24, TO_CHAR(d1),TO_CHAR(d2)) = 1"
    Hope this helps.

  • Personalization Publication with user defined / multiple / discrete values

    Hello,
    I try to personalize a main report ( with Enterprise XI 12.1.0, Crystal Report XI  )
    ( parameter p_company_code ( as string ),  with user defined / multiple / discree and range values )
    with dynamic recipients ( Crystal Report ).
    For a single value it works.
    But I did not find a solution how to set up the values for my parameter p_company_code so that I can start the main report
    with the following company codes  ( 4711, 4712, 0815-0890 ) for one recipients ( only one report for all this company codes  )
    Thans for your help
    H. Blum

    Hi Fabio,
    It works as follows.
    let's say you have 3 multiple single lines for your cost center variable.
    once you are in the folder, select any single value & the layout is ready for planning with the corresponding cost center.
    now, select the "Cost center variable row" in the header of the folder within section "Name of Variable" & click on "Trash Can" icon to "Delete Selection" of variable.
    this basically deletes all the entered selections (3 entries) & displays for all.
    It works this way, because we don't have "resriction of values required by user".
    if am not wrong & correct me if am wrong,
    overall, this is nothing but equal to "planning level not restricted with any variable".
    I just tested this & the flaw in this is that, it is not only displaying for all the initially entered 3 lines but it displays for each & every cost center irrespective of the variable selections.
    hope it is clear.

  • ALV with user-defined buttons on toolbar in wd abap

    Hi All,
    I have to create an alv with user defined buttons  in wd abap on its toolbar.Could any one tell me in detail about it or provide me with any tutorial based on it.
    Thanking you all in advance.

    DATA: LR_CMP_USAGE TYPE REF TO IF_WD_COMPONENT_USAGE.
    DATA: LR_INTF_ALV TYPE REF TO IWCI_SALV_WD_TABLE.
    LR_CMP_USAGE = WD_THIS->WD_CPUSE_ALV( ).
    IF LR_CMP_USAGE->HAS_ACTIVE_COMPONENT( ) EQ ABAP_FALSE.
       LR_CMP_USAGE->CREATE_COMPONENT( ).
    ENDIF.
    LR_INTF_ALV = WD_THIS->WD_CPIFC_ALV( ).
    WD_THIS->M_MODEL = LR_INTF_ALV->GET_MODEL( ).
    DATA: LR_FUNCTION TYPE REF TO CL_SALV_WD_FUNCTION.
    LR_FUNCTION =
    WD_THIS->M_MODEL->IF_SALV_WD_FUNCTION_SETTINGS~CREATE_FUNCTION(
                            ID = 'ISSUE' ).
    DATA: LR_BUTTON TYPE REF TO CL_SALV_WD_FE_BUTTON.
    CREATE OBJECT LR_BUTTON.
    LR_BUTTON->SET_TEXT( 'Issue/Receive' ).
    LR_FUNCTION->SET_EDITOR( LR_BUTTON ).
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/101df93f-4b5c-2910-14aa-9eb0338c2110
    Abhi

  • Want to proceed with User defined fuction in Mapping i dont know java

    Hi all ,
                  i dont know Java , i want to proceed with user defined fuction , i  have worked with ABAP but not with java ,  i do want abt some knowledge about it ,
    thanks
    sridhar

    Hi,
    Please see the below links ,
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-i
    Difference in using java,xslt,message mapping
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-i
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-ii
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-iii
    /people/stefan.grube/blog/2006/10/23/testing-and-debugging-java-mapping-in-developer-studio
    /people/thorsten.nordholmsbirk/blog/2006/08/10/using-jaxp-to-both-parse-and-emit-xml-in-xi-java-mapping-programs
    /people/rahul.nawale2/blog/2006/07/18/java-mapping-an-alternate-way-of-reading-a-csv-file
    /people/amol.joshi2/blog/2006/03/10/think-objects-when-creating-java-mappings
    XSLT Mapping
    /people/prasadbabu.nemalikanti3/blog/2006/03/30/xpath-functions-in-xslt-mapping
    /people/sreekanth.babu2/blog/2005/01/05/design-time-value-mappings-in-xslt
    /people/anish.abraham2/blog/2005/12/22/file-to-multiple-idocs-xslt-mapping
    XSLT Mapping with java enhancement
    /people/pooja.pandey/blog/2005/06/27/xslt-mapping-with-java-enhancement-for-beginners
    Regards
    Chilla..

  • [All Platforms][Your Music] Make it possible to tag and filter "My Music" with user-defined tags

    It would be very nice and convenient to be able to tag and filter "My Music" (playlists, songs, albums and artists) with user-defined tags. I'm sure quite a few users would like to classify their music by genre. Myself, I would like to tag my albums, assigning them to different virtual collections.

    Updated: 2015-07-23Hello and thanks for the feedback!
    A similar idea has also been suggested here:
    https://community.spotify.com/t5/Live-Ideas/Your-Music-Grouping-or-Sorting-by-Tags/idi-p/744947
    Add your kudos and comments there please! ;)

  • Problems with user-defined update-process

    Hi.
    I have a small problem in the right syntax in an user-defined updated process.
    The process is called by a button on the page and should update a record in a table.
    BEGIN
    UPDATE wam_mod_allocation SET
    alloc_assessment = V('P2120_ASSESSMENT'),
    last_update_date = LOCALTIMESTAMP,
    last_update_staff = V('APP_USER')
    WHERE username = V('P2120_USERNAME')
    AND module_id = V('P2120_MODULE_ID')
    END;
    This is the code of the process. The line with the problem is marked bold. P2120_USERNAME is a text field in the page and contains the username to be updated.
    The problem is, that the comparison doesn't work. the value "smith" is available in the table and is the same as in the text field. (both in lower case).
    If I replace the part V('P2120_USERNAME') with 'smith' (with single quotes), the update statement works properly.
    How do I have to compare the username with the item value that it works properly?

    1. Stephan
    2 + 3 Well. I enclosed both tags in the TRIM-Operator and it works. First, I thought, a whitespace caused the problems. To determine which value contains the whitespaces I removed the trim-tags on both sides. It works.
    It is quite funny, because,if I remove both tags, it works too? Well. Yesterday it didnt.
    To be on the safe side, I will include the trim-tags.
    Thanks very much.
    Stephan

Maybe you are looking for

  • I upgraded to iTunes 8 and now it wont open at all

    Ok so I upgraded to iTunes 8 and now every time I try to open my iTunes it says that iTunes has unexpectedly quit and it asks me if I want to relaunch it so I click relaunch and the same thing happens. iTunes is like my second life so can somebody pl

  • One Mac - 2 user accounts

    I accidentally linked my son's Ipod to my ITunes account but he has his own under his user account on our Mac. Is there any way that I can remove his IPod from my Itunes memory? Every time he goes in to his ITunes account it tells him that it is also

  • How do I get after effects to render with my GPU?

    Yea, really noob question, but I can't figure it out! Spent literally HOURS trying to find how to do this..  Use my GTX 670 to render instad of CPU.  Can't figure it out.  I finally (I think) figured out where to change the setting to raytraced rende

  • Has anyone got embedded fonts in SVG to work on Mac OS X Lion?

    I have used CS3, CS4 suite versions of illustrator on Snow leopard, and embedding fonts worked correctly, but on several computers at work here, none of the CS5 or CS5.5 suite versions of illustrator embed fonts in SVG format on Lion. I have also tri

  • Messages log in at Home

    I can't log in to Messages from my home wifi, but I can everywhere else.