How to validate source data

Hi All,
I am new to ODI, in my process could be called in 2 modes Validation and Load
a. Validation – V – would perform the validation on the source data based on the filter criteria
b. Load – L – would perform some mandatory check and load the data in target table
my concern is how should i do only validation on source data,Please share any ideas regarding this...
Thanks in Advance...

What kinda validation you need ?
YOu can right click on datastore and go for check or else you can drag the datastores to a package and even check it there. You can also create constraints as per your requirement and check it.
The error records will be inserted into E$ table if found. Very nice article written here
http://odiexperts.com/flow-control-and-static-control/
Thanks.
Bhabani

Similar Messages

  • How to validate the dates in the table control ?

    How to validate the dates in the table control ?
    Can I write like this ?
    LOOP AT it_tab .
    CHAIN.
    FIELD : it_tab-strtdat,it_tab-enddat.
    module date_validation.
    ENDCHAIN.
    ENDLOOP.
    Module Date_validation.
    ranges : vdat type sy-datum.
    vdat-sign = 'I'.
    VDAT-LOW = it_tab-STRTDAT.
    VDAT-HIGH = it_tab-ENDDAT.
    VDAT-OPTION = 'BT'.
    APPEND VDAT.
    WHAT CODE I have to write here to validate ?
    and If I write like this How can we know which is the current row being add ?
    It loops total internal table ..?
    Bye,
    Muttu.

    Hi,
    I think there is no need to put chain endchain.
    To do validation you have to write module in PAI which does required validations.
    Thanks
    DARSHAN PATEL

  • How to validate a date in message mapping

    Hi experts,
                    how to validate a date in message mapping. For ex:  if date comes as 2008/02/31, then file it shold not get processed.how to achieve this in message mapping. Please help .
    Thanks&Regards,
    Reyaz Hussain

    Hi,
    There are few simple ways for date validation as follow,
    1.If you would like to handle it in XI only, then in message mapping you could verify about it with the help of generating smart exception.
    For e.g in mapping there is one Date conversion API i.e. somthing DateTransformation It converts the incoming date format to required format. Here give the date format i.e expected from Sender File.
    If in case the format miss-matched then it will create the exception.
    You could handle this exception with the use of [Alert notification|http://help.sap.com/saphelp_nw04/helpdata/en/2c/abb2e7ff6311d194c000a0c93033f7/frameset.htm] and could be even able to notify to sender system about it.
    2. The another solution is easy for SAP synchornous communication --If you are passing the file data to SAP, then you could use below function modules to verify date format in receiver RFC/BAPI or inbound IDOC program. If the sy-subrc is not 0 then don't process further.
    CONVERT_DATE_FORMAT
    ISU_DATE_FORMAT_CHECK
    Thanks
    Swarup

  • Validate source data at communication channel level only....

    Hello Experts
       I want to validate the source data just after picking the file i.e at communication channel level. The error file or record has to moved to the archive folder. This is my thought correct me if  i am wrong.
    Thanks in advance

    Hi Arjun,
    Communication channel only pick up the data,its does not have capability to check the content,if you want to implement this logic for communication channel,writing adapter module is the right option.
    You need to write a logic in EJB Module  to validate the content ,its purely depending on Logic how you are going to write in JAVA.
    if you are using PI7.1 you can validate your payload before picking up the message.
    search in sdn you will find some usefull documents how to write adapter module.
    Regards,
    Raj

  • How to validate LOV data

    Hi,
    how to validate lov feild data ??
    Requirement is my page have 2 lov feilds, It is a dependent lov.
    The feilds will not allow the invalid data in lov feilds when i click on 'save' button. Then i need to display a message "select valid values in lov feilds".
    Can anyone help me on this req....
    Thanks
    Edited by: 926074 on Apr 12, 2012 1:23 PM

    Hi niranj,
    I am using submit button.
    All the properties what u r said exactly same. But it is not working
    PG.xml code
    <?xml version="1.0" encoding="UTF-8" ?>
    - <!-- dbdrv: exec java oracle/jrad/tools/xml/importer XMLImporter.class java &phase=dat+24 checkfile:~PROD:~PATH:~FILE &fullpath:~PROD:~PATH:~FILE -username &un_apps -password &pw_apps -dbconnection &jdbc_db_addr -userId "1" -rootPackage /oracle/apps/~PROD -rootdir &fullpath:~PROD:mds:directory
    -->
    - <page xmlns:jrad="http://xmlns.oracle.com/jrad" xmlns:oa="http://xmlns.oracle.com/oa" xmlns:ui="http://xmlns.oracle.com/uix/ui" version="9.0.3.8.12_1330" xml:lang="en-US" xmlns:user="http://xmlns.oracle.com/jrad/user" xmlns="http://xmlns.oracle.com/jrad" file-version="$Header$">
    - <content>
    - <oa:pageLayout id="MainRN" amDefName="wnsgs.oracle.apps.sysadmin.requestforaccess.server.RequestforAccessAM" windowTitle="Create New Responsibility" title="Create New Responsibility" controllerClass="wnsgs.oracle.apps.sysadmin.requestforaccess.webui.RequestAccessDetailsCO">
    - <ui:corporateBranding>
    <oa:image id="corporateBrandingImage" source="/OA_MEDIA/FNDSSCORP.gif" />
    </ui:corporateBranding>
    - <ui:contents>
    - <oa:advancedTable id="ResultsAdvTable" viewName="RequestAccessDetailsVO1">
    - <ui:contents>
    - <oa:column id="column4">
    - <ui:columnHeader>
    <oa:sortableHeader id="sortableHeader4" prompt="Request ID" />
    </ui:columnHeader>
    - <ui:contents>
    <oa:messageTextInput id="RequestId" viewAttr="RequestId" readOnly="true" dataType="NUMBER" />
    </ui:contents>
    </oa:column>
    - <oa:column id="column1" width="75%">
    - <ui:columnHeader>
    <oa:sortableHeader id="sortableHeader1" prompt="Application Name" cellNoWrapFormat="true" abbreviation="" />
    </ui:columnHeader>
    - <ui:contents>
    - <oa:messageLovInput id="ApplicationName" viewAttr="ApplicationName" readOnly="false" maximumLength="100" columns="60" unvalidated="false" required="no" queryable="true">
    - <lovContents>
    - <oa:listOfValues id="region5" amDefName="wnsgs.oracle.apps.sysadmin.requestforaccess.server.RequestforAccessAM">
    - <ui:contents>
    - <oa:table name="region5" id="ApplicationNamepoplistVO1">
    - <ui:contents>
    <oa:messageStyledText id="ApplicationName1" dataType="VARCHAR2" prompt="ApplicationName" viewName="ApplicationNamepoplistVO1" viewAttr="ApplicationName" maximumLength="240" queryable="true" selectiveSearchCriteria="false" required="no" />
    </ui:contents>
    </oa:table>
    </ui:contents>
    </oa:listOfValues>
    </lovContents>
    - <lovMappings>
    <lovMap id="lovMap1" resultTo="ApplicationName" lovItem="ApplicationName1" criteriaFrom="ApplicationName" useForValidation="default" requiredForLOV="false" />
    <lovMap id="lovMap3" lovItem="ApplicationName1" resultTo="link" useForValidation="default" requiredForLOV="false" />
    </lovMappings>
    </oa:messageLovInput>
    </ui:contents>
    </oa:column>
    - <oa:column id="column2">
    - <ui:columnHeader>
    <oa:sortableHeader id="sortableHeader2" prompt="Responsibility Name" cellNoWrapFormat="true" />
    </ui:columnHeader>
    - <ui:contents>
    - <oa:messageLovInput id="ResposibilityName" viewAttr="ResponsibilityName" columns="60" unvalidated="false" required="no" disabled="false" tipType="none" readOnly="${oa.DisableFeildPVO1.xxdisable}" rendered="true">
    - <lovContents>
    - <oa:listOfValues id="region6">
    - <ui:contents>
    - <oa:table name="region6" id="ResponsibilitypoplistVO1">
    - <ui:contents>
    <oa:messageStyledText id="ResponsibilityName" dataType="VARCHAR2" prompt="ResponsibilityName" viewName="ResponsibilitypoplistVO1" viewAttr="ResponsibilityName" maximumLength="100" queryable="true" required="no" />
    <oa:messageStyledText id="ApplicationName2" dataType="VARCHAR2" prompt="ApplicationName" viewName="ResponsibilitypoplistVO1" viewAttr="ApplicationName" maximumLength="240" />
    </ui:contents>
    </oa:table>
    </ui:contents>
    </oa:listOfValues>
    </lovContents>
    - <lovMappings>
    <lovMap id="lovMap2" lovItem="ResponsibilityName" resultTo="ResposibilityName" criteriaFrom="ResposibilityName" useForValidation="default" requiredForLOV="false" />
    <lovMap id="lovMap4" lovItem="ApplicationName2" criteriaFrom="link" useForValidation="default" requiredForLOV="false" />
    </lovMappings>
    </oa:messageLovInput>
    </ui:contents>
    </oa:column>
    - <oa:column id="column3">
    - <ui:columnHeader>
    <oa:sortableHeader id="sortableHeader3" prompt="Delete" />
    </ui:columnHeader>
    - <ui:contents>
    - <oa:image id="Delete" source="deleteicon_enabled.gif" prompt="delete" imageHeight="24" imageWidth="24">
    - <ui:primaryClientAction>
    - <ui:fireAction event="delete">
    - <ui:parameters>
    <ui:parameter key="Requestid" value="${oa.RequestAccessDetailsVO1.RequestId}" />
    </ui:parameters>
    </ui:fireAction>
    </ui:primaryClientAction>
    </oa:image>
    </ui:contents>
    </oa:column>
    <oa:formValue id="link" viewAttr="ApplicationName" />
    </ui:contents>
    - <ui:tableActions>
    - <oa:flowLayout id="region4">
    - <ui:contents>
    <oa:submitButton id="AddRow" text="Add Another Row" prompt="Add Another Row" />
    </ui:contents>
    </oa:flowLayout>
    </ui:tableActions>
    </oa:advancedTable>
    - <oa:rowLayout id="region3">
    - <ui:contents>
    <oa:submitButton id="Save" text="Save" prompt="Save" disabled="false" />
    <oa:spacer id="item1" width="5" />
    <oa:submitButton id="Submit" text="Submit" prompt="Submit" />
    <oa:spacer id="item2" width="5" />
    <oa:submitButton id="Home" text="Go to Home" prompt="Go to Home" />
    </ui:contents>
    </oa:rowLayout>
    <oa:formValue id="requestid" viewName="RequestforAccessHeadersVO1" viewAttr="RequestId" />
    <oa:formValue id="UserID" viewName="RequestforaccessVO1" viewAttr="EmployeeNumber" />
    </ui:contents>
    </oa:pageLayout>
    </content>
    </page>
    Thanks
    Edited by: 926074 on Apr 16, 2012 6:21 PM

  • How to validate when date format is diff Internally and externally

    Hello,
    How can I validate the Date format if Internal format and external format is different.
    Ex :
    *  SELECT SINGLE CRTSP
    **                FROM /SAPSLL/PR
    **                INTO L_CRTSP
    **                WHERE CRTSP IN S_CRTSP .
    CRTSP (YYYY/DD/MM HHMMSEC) Internal Format
    S_CRTSP (YYYY/DD/MM) External format - selection option
    I had done following to convert the internal format to external format.
    DATA : LV_DT TYPE STRING.
    DATA :  L_CRTSP TYPE /SAPSLL/CRTSP.
    SELECT SINGLE CRTSP
                    FROM /SAPSLL/PR
                    INTO L_CRTSP.
    MOVE : L_CRTSP TO LV_DT. "(YYYY/DD/MM HHMMSEC)
    L_LEN = STRLEN( LV_DT ).
    L_DATE = LV_DT+0(8).
    I have the date format that i need in L_DATE."  (YYYY/DD/MM)
    Now how should I validate?
    *  SELECT SINGLE CRTSP
    **                FROM /SAPSLL/PR
    **                INTO L_CRTSP
    **                WHERE CRTSP IN S_CRTSP .
    Please let me know how can I validate or how can I write the select query to validate this field.
    There should be some way using Wildcard or some function module...which I am not sure...
    Any suggestions will be appreciated!
    Regards,
    Kittu
    Edited by: Kittu on Jan 6, 2009 12:58 PM

    Hello,
    Thank you for youe response and I apprecaite the help so far.
    This logic work if it is Parameter...When I have select option it is not working as it is not taking the range values...
    SELECT GUID_PR "Primary Key as GUID in "RAW" Format
    CRTSP "PRODUCT CREATED ON
    CHTSP "PRODUCT CHANGED ON
    FROM /SAPSLL/PR
    INTO TABLE T_PR.
    DATA : T_PR1 TYPE TY_PR OCCURS 0 WITH HEADER LINE.
    DATA:  W_TEST    TYPE STRING,
           W_LV_LEN  TYPE I,
           W_LV_LEN1 TYPE I,
           W_LV_DATE(20)  TYPE C,
           W_LV_DATE1(20) TYPE C.
    DATA : W_V(8) TYPE C,
           S_CT(11) TYPE C.
    SORT T_PR BY CRTSP CHTSP.
    LOOP AT T_PR INTO WA_PR.
      W_TEST = WA_PR-CRTSP.
      W_LV_LEN = STRLEN( W_TEST ).
      W_LV_DATE = W_TEST+0(8).
    ** IF WE SELECT ONLY ONE DATE IN SELECT OPTION
    s_crtsp VALUE IS - IEQ20040101..bY REMOVING FIRST THRID DIGITS
    WE ARE GETTING THE S_CRTSP VALUE IS 20040101 AND THIS LOGIC IS WORKING FINE..
       MOVE S_CRTSP TO S_CT.
      W_LV_LEN1 = STRLEN( S_CT ).
      W_LV_DATE1 = S_CT+3(8).
    *  IF W_LV_DATE NE S_CRTSP
    IF W_LV_DATE NE W_LV_DATE1.
      W_FLG = 'X'.
        DELETE T_PR INDEX SY-TABIX.
      ENDIF.
      CLEAR W_FLG.
    ENDLOOP.
    Can we do anything for this...
    ANy suggestions would be apprecaited!
    Regards,
    Kittu

  • How to merge source data with RFC response and post back again as Idoc

    Hi All,
    This is the requirement we have for an interface
    The legacy application is sending Vendor master to PI 7.0
    If it is new vendor then it is send as an Cremas Idoc into SAP. Legacy (New Vendor) -
    > PI 7.0  -
    >Cremas Idoc SAP
    If it is changed Vendor legacy will only send changed fields for that Vendor.In PI we would like to call an RFC which will return all the data for that changed Vendor Number and then merge the RFC response with changed data from legacy and then send it to SAP as Cremas Idoc again with all values.
    I know these can be achieved using Proxy by custom Abap Code in SAP.But we would like to avoid it.
    How can we achieve it?
    1.RFC lookup - Shall we use these , when PI receives changed Vendor from legacy ,it will call RFC using RFC lookup and the response message from RFC lookup should be merged with source data .Is this possible?
    2.Shall we achieve this using BPM ?Is it feasible and How?
    Any Help greatly appreciated
    Thanks,
    V

    If it is changed Vendor legacy will only send changed fields for that Vendor.In PI we would like to call an RFC which will return all the data for that changed Vendor Number and then merge the RFC response with changed data from legacy and then send it to SAP as Cremas Idoc again with all values.
    I am not sure why you want to pull whole data from R3 and send back to R3.
    you can follow any of these approach..
    if you have any indicator for new/ changed cusotmer in the legacy data then trigger CREMAS IDoc accordingly.
    mapping rules will be diffrent for New and changed CREMAS idoc.
    otherwise just do RFC look up for each record then based on the output(new/changed) create or update cusotmer data through CREMAS IDoc.
    when changing the customer through CREMAS no need to pass whole data again. it is enough if pass the changed fields. offcourse qualifier values  for segments will differ.

  • How to "cleanse" source data in OWB

    hi!
    I need cleanse source data like this:
    destination := NVL(source, 'not defined')
    in SQL
    select NVL(src_table.field, 'not defined')
    from src_table
    how I can it do in OWB?

    No,
    you only can use the not null data rule to avoid records with some null values in the target. But if you want to replace this values with a predefined value you must do it with an operator.
    Regards,
    Detlef

  • How to validate the date in my class

    Hi
    In my project with jsp and struts I need to validate the date field.
    So in the action class I want to validate the date that is the date is in dd/mm/year format?
    can anybody please give some idea to do this?
    Thank you so much.

    Here is a method that validates day/month/year using the Calendar class.
         public boolean validateDate(int day, int month, int year) {
              try {
                   Calendar cal = Calendar.getInstance();
                   cal.clear();
                   cal.setLenient(false);
                   cal.set(year, month-1, day);
                   // need to call getTime() to make the calendar compute/validate the date
                   cal.getTime();
                   return true;
              catch (IllegalArgumentException e) {               
                   return false;
         }

  • How to validate the data in the table

    Hi Experts,
    My question is
    I am having a table control on my view. I need to validate the data entered by the user on the table
    and after validation i need to save the data into database table.
    Now my question is only related to Data Validation on table UI element.
    If the user enters 3 rows and if the 2nd and 3rd row are already existing,
    It should throw the message Entry already exists and the pointer should
    be at Row number 2 in this case.
    Similarly in the 2nd row i have a date field and if the user enters some character
    then it should throw an error message that Numeric values are only allowed and
    the pointer is placed in the 2nd row Date column so that it allows user to modify
    the wrong entry.
    Please advise.
    Regards,
    Chitrasen

    Hi,
    for validating user input in table , you have to get the entries inserted by user into an internal table using get_static_attribute_table and futher have your check using loop endloop.
    For date field, make the context attribute binded to date column as DATS. This would make sure the user inputs a valid date without your custom code.

  • How to validate a date with time

    Hi All,
    How can I validate date with time?
    Here is my code:
    var tempDate:Date = new Date();
    if (tempDate < '09/18/2012 7:30:00 AM'){
         doSomething
    Thanks in advanced

    I think i got it to work.
    var tempDate:Date = new Date();
    var oldDate:Date = new Date('09/18/2012 7:30:00 AM');
    if ( Number(tempDate) < Number(oldDate) ){
         doSomething
    Best,

  • How to validate a date item  "DD/MM/YYYY HH24:MI" ?

    Hi,
    I want to create a validation item. I have a date item usinhg this mask : "DD/MM/YYYY HH24:MI".
    I want to validate if a date entered according to this syntax "DD/MM/YYYY HH24:MI"
    Unfortunately APEX gives me only the choice to validate if a date is under the form "DD/MM/YYYY" which gives this syntax :
    ^([012]?[[:digit:]]|3[01])/(0?[[:digit:]]|1[012])/[[:digit:]]{4}$I don't know this syntax, do you know how I could transform it (I mean adding the hours and minutes criteria) to attain my goal ?
    Sorry for my english, not perfect, today !
    Regards,
    Christian

    Try this:
    SELECT REGEXP_INSTR('04-OCT-2011 23:12',
    '^([012]?[[:digit:]]|3[01])-(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)-[[:digit:]]{4}[[:space:]][0-2][0-9]:[0-9][0-6]$') test_result
    FROM dualFor case-insenstive matching, use below:
    SELECT REGEXP_INSTR('04-OCT-2011 23:12',
    '^([012]?[[:digit:]]|3[01])-(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)-[[:digit:]]{4}[[:space:]][0-2][0-9]:[0-9][0-6]$',1,1,0,'i') test_result
    FROM dualThanks!
    JMcG

  • Who can tell how to validate a date in poor java?

    My programm can let user to input date in the default dateformat. Before save it to database I'd validate if the input is valid date. buf I can't find any function to do it both in java.util.Date and java.sql.Date, my program is as follow:
    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT); // in default Locale
    java.util.Date testdate;
    input = jtfInDate.getText().trim();
    if(!input.equals("")) {
    try {
    testdate = df.parse(input);
    } catch(ParseException pe) {
    JOptionPane.showMessageDialog(this,
    "<html><font color=red size=4>invalid date format</font></html>",
    "warning",
    JOptionPane.WARNING_MESSAGE);
    return false;
    System.out.println("indate" +testdate);
    If I input "dafafa" in the jtfInDate(is a JTextField),the DateFormat can detect that's invalid and throw ParseException. But when I input "9999-99-99", the DateFormat can parse it without Exception!!!
    and print out as "indate=Thu Jun 07 00:00:00 CST 10007", year 10007!!!!
    "9999-99-99" is obviously a invalid date format. Why DateFormat.parse() can think is OK?
    Is this the java's excellency????
    Could anyone tell me how to judge a string of date is valid?

    You can use the setLenient method to tell the DateFormat object to stop trying to help you out, this should go some way toward getting you where you need to go. Check the API docs out for that.
    Good Luck
    Lee
    PS: don't mind esran, he's not the sharpest tool in the shed, and is likely still trying to figure out the mess he documented in this thread:
    http://forum.java.sun.com/thread.jsp?thread=519291&forum=31&message=2479820
    So, I suppose a little slack is warrented

  • How to validate a date in xquery transformation

    i am doing the xquery transformation for mfl(non-xml) and xml
    i have a date-pickup and i should validate this field as my datatype is date , instead of date i am getting the data as 00000000 ,my date-pickup format is yyyymmdd
    can we do a validation for this specific field and all the failed date validations should be written as blank tag in xsd
    Please give me a suggestion for this

    Hi,
    There's a xquery extension function that you can use for that
    fn-bea:date-from-string-with-format
    The fn-bea:date-from-string-with-format() function returns a new date value from a string source value according to the specified pattern.
    The function has the following signature:
    fn-bea:date-from-string-with-format($format as xs:string?, $dateString as xs:string?) as xs:date?
    where $format is the pattern and $dateString is the date. For more information about specifying patterns, see Date and Time Patterns.
    Examples:
    fn-bea:date-from-string-with-format("yyyy-MM-dd G", "2005-06-22 AD") returns the specified date in the current time zone.
    fn-bea:date-from-string-with-format("yyyy-MM-dd", "2002-July-22") generates an error because the date string does not match the specified format.
    fn-bea:date-from-string-with-format(“yyyy-MMM-dd”, “2005-JUL-22”) returns the specified date in the current time zone.
    http://docs.oracle.com/cd/E13162_01/odsi/docs10gr3/xquery/extensions.html#wp1297249
    Cheers,
    Vlad
    It is considered good etiquette to reward answerers with points (as "helpful" - 5 pts - or "correct" - 10pts)
    https://forums.oracle.com/forums/ann.jspa?annID=893

  • How to validate a date in a validation script

    I have a date field for which I have set a validation pattern using its Object palette i.e. Object > Value tab > Validation Pattern > Validation tab. The validation pattern I have there is simply 'date{YYYY-MMM-DD}' with an error message set in the Validation Pattern Message box.
    How do I perform this same validation using a javascript in the Validation event?
    I'd like to use a script instead so that I can better control when this validation will be performed.
    Thanks!!
    Marc

    Marc:
    If your field has a display picture clause, then you can detect if it formatted correctly by looking at field.formattedValue
    Specifically, if the value cannot be formatted, the formattedValue will be the same as the rawValue (unformatted).
    So a validation script that specifies:
    this.formattedValue !== this.rawValue;
    should detect invalid dates.
    See: http://blogs.adobe.com/formfeed/2011/06/understanding-field-values.html
    good luck
      John

Maybe you are looking for