Qualified Tables - Loop with Expression

Hi Experts,
Is there any way to setup a validation to loop over qualified links and check if a specific field has a value (not being NULL)?
For example I have the following qualified links of qualified table Location Data for a Main Table Record (Material), with two fields Plant and Purchasing Group. Plant is Non-Qualifier and Purchasing Group is Qualifier and a lookup field into the table Purchasing Group.
Plant: 3100
Purchasing Group: NULL
Plant: 2100
Purchasing Group: 12
I want to set up a validation to loop over all qualified links and check wether Purchasing Group is set. If one of them is not set I want to display a warning on record save.
Anybody know if this is supported?
Thanks,
Ingo

Hi Ingo,
I am assuming the following requirement:
You want to throw a validation error when your qualifier(Purchasing Group) is NULL.
If this the case then we can have a validation as described below for the qualified link.
Step1. In Data Manager select Main Table as  Current table and go to Validations Tab.
Step2. Create a validation expression by Using Function IS_NOT_NULL() and then Go to Fields drop down and select the Qualified Table --> Qualifier (Purchasing Group).
Suppose if your Qualified table is "Test" and Qualifier is "Purchasing Group" then the expression will look like IS_NOT_NULL(Test.Purchasing Group).
The other properties like "Error Message", "Automatic Execution" will vary as per your requirement
Try this out and let me know.
Thanks and Regards,
Sagar Sonje
Mark Helpful Answers

Similar Messages

  • How can I change Overridden Qualified Table Name with a programm

    Hallo have the the Problem
    to change more then 500 Reports more than one time
    I want to change to change qualified Tabelname with a programm ( I wan't del the qualifier )
    manuel with the report designer I set the replace qualified Tablename and then verifiy Database is ok
    I want to do this with a program but the Qualifiers is write protected
    How can I change the Qualifier by programm.
    thanks for help

    Hello, Jörg;
    As I mentioned, you can remove the Qualifier in the report designer but we do not recommend it. It is not supported at runtime in an application. We expect a table location to be fully qualified or you may get incorrect data.
    There is a way to change the fully qualified location at runtime and get and set the qualifier. The following code gets what is saved in the report.
    'Definitions in Module.bas
    Public crxApplication As New CRAXDRT.Application
    Public External_Report As CRAXDRT.Report
    Public ReportFileName As String
    Public crxTable As CRAXDRT.DatabaseTable
    Private Sub Get_Qualifiers()
    'Get the fully qualified table location
    'Change it if necessary and set the new location "owner.dbo.tablename"
    'Verify the Database
    ' Assemble the qualified table name for each table.
    For Each crTable In External_Report.Database.Tables
        Dim strQualTableNamePart As Variant
        Dim strQualTableName As String
        strQualTableName = ""
        ' Obtain the table's qualifiers.
        Dim i As Integer
        For i = 1 To crTable.Qualifiers.Count
            If i > 1 Then
            strQualTableName = strQualTableName + "."
        End If
        strQualTableNamePart = crTable.Qualifiers.Item(i)
        strQualTableName = strQualTableName + strQualTableNamePart
        Next
        ' Obtain the table's name.
        If (strQualTableName <> "") Then
            strQualTableName = strQualTableName + "."
        End If
        strQualTableName = strQualTableName + crTable.Location
        ' Display the fully qualified table name.
        MsgBox "Fully qualified location " + strQualTableName
        crTable.Location = strQualTableName
    Next
    'Should be the equivalent of:
    'External_Report.Database.Tables(1).Location = "Xtreme1.dbo.Customer"
    'If the structure of the database has changed, verify the database
    'External_Report.Database.Verify
    End Sub
    Elaine

  • Expression logic for qualified tables

    Hello Experts.
    I am searching for an expression that can manage the following requirements:
    Different records of a qualified table belong to one record of the main table. One value that belongs to a certain combination in the qualified table should be automatically transferred to a field in the main table. For example there is one main table (MAIN) and a qualified table (QT) with at least two fields.
    Main table (MAIN) with some fields
    Qualified table (QT) with Field 1 and Field 2
    I tried following expression: IF(QT.Field 1 = ‘NAME’, QT.Field 2). But the expression doesn't’t work.
    How can an expression work with a certain combination of a qualified table? Has anybody an idea how to solve such a mystery?
    Thank you in advanced,
    Anja

    Hi Anita.
    I have the answer: You need an additional field in qualified table. This field is filled during import with the concatenation of all field values of the QT record.
    Qualified table with field 1 and field 2 look then like this
    Field 1: Name
    Field 2: Anita
    Field Conca:Name.Anita
    Now it is possible to build expression that can evaluate the string of the concatenation field.
    Thanks for your help,
    Anja

  • What is qualifier table and where exactly we will use that

    Hi experts,
      I have one query regarding qualifier table. where exactly we use qualifier table. can u give me any realtime situation where we use qualifier table.
    Regards
    Ravikumar

    Hi Ravikumar,
    A qualified table is a special kind of lookup table. It can be used to efficiently store complex relationships between a main table record and one or more lookup table records that contain various types of additional information.
    Go Through Important Links
    /people/pooja.khandelwal2/blog/2006/03/29/taming-the-animal--qualified-tables
    /people/community.user/blog/2006/12/20/so-is-that-the-qualifier-or-the-non-qualifier
    A qualified table stores a set of lookup records, and also supports qualifiers, database u201Csubfieldsu201D that apply not to the qualified table record by itself, but rather to each association of a qualified table record with a main table record.
    Qualified lookup tables are used to store the values of Two types of fields Qualifiers and non Qualifiers.
    Qualifiers are the fields whoes values changes based on the values of other fields called Non Qualifiers.And are associated with the main Table Records.
    Non Qualifiers are only part of Qualified lookup Tables.
    In Data Manager QualifiedLookUp Tables appear in the lower right Part.
    For example in your main table supoose you have an Employee Repository that maintains employee information (Name,Telephone,Address etc).One employee can have sitting arrangement on different office locations.
    Then if Location is your main table field in that case for 10 places you have to make 10 seperate entries of One Employee name with different locations,that will unnecessarily increase the records of your main table and also duplicate for Employee name field as well.
    To resolve this make a look up field location in main table for qualified lookUp Table Locations.
    In Locations table create a Non Qualifier field OfficeADD(lookup flat )for Officelocation table .
    And create two more fields DeskNo. and Telephone No.(both as qualifiers)for every location the desk no. and telephone no. will be different.
    In Officelocation table has one field Name which contains address of diffrent locations.
    Now according to the Qualifier and Non Qualifier concept
    In main table for an Employee say Ravindra you can go qualifiedLookUp table and select a value for OfficeADD(a non qualifier) and set valus for Desk no. and telephone no.(Qualifiers) as well.
    Reward if Helpful.
    Vinay Yadav
    Edited by: Vinay Yadav on Jun 23, 2008 12:54 PM
    Edited by: Vinay Yadav on Jun 23, 2008 12:58 PM

  • Importing 2 Qualified Tables

    Hi Team,
    Need suggestion:
    I have 2 Qualifier tables. 1 with more than 3 Non Qualiers and the other with only 1 non qualier.
    I am successfully able to import their main table data individually, using different maps.Both the values are getting populated.
    But on importing the Main table data (1 map) with both the Qualified tables, only 1 of their Non Qualifer data getting displayed.
    Both these Qualified tables have no common fields between them. No idea why it is affecting on importing together.
    NOTE:
    On importing the Qualified tables  manually with 2 different maps, it is getting imported.
    But on importing Automatically, only one of the Qualified table is getting populated.
    Thanks,
    Priti

    Hi Priti,
    For multivalued field you need to check for Qualified Update option. For this you can refer page 257 of Import manager 7.1 reference guide. Try this option, it should solve your problem.
    Thanks & Regards
    Dilmit Kaur Chadha

  • Qualifier Field Not Shown in Qualified Table

    Hi All,
    Can anybody tell me why the values of qualifier fields are not shown in the qualified tables? And where are those qualifier values stored, in the main table or in the qualified table itself?
    Best Regards
    Jerome

    Hi Jerome,
    Before starting, I am assuming there is no confusion relating to Qualifiers & Non-Qualifiers.
    Non-Qualifiers --> Decidors/Fields whose value changes
    Qualifiers --> Fields which get decided/whose value changes based on the Non-Qualifers.
    You said - "<i>Can anybody tell me why the values of qualifier fields are not shown in the qualified tables?</i> "
    <b>1. )</b>What I understood from your question is that; when you select your Qualified Table in the Record Mode of the Data Manager, the qualifiers appear to be locked/non-editable. Is that right?
    All the qualifiers are locked because <b>they have no context in the Qualified table.</b>
    For e.g.: If your Qualified table is "Addresses" consisting of
    Non-Qualifiers --> Address Type(say Home(can be more than 1), Office,etc)
    Qualifiers --> HouseNo,Street, City, Country,etc.
    What would it mean if we put the street name "XYZ Street" for the record selected. Nothing -- the street must be connected to a main table record, a Customer(Cust_Id)  and and an address-type(Home) to have meaning.
    <b>2.)</b> If the above interpretation of your Q is not correct, then 2nd case could be --> when you select your main table in DM (Record Mode)and try to add a Qualified Lookup value to a record you are unable to see the qualifiers. Right?
    In the main table Double-click on the quailfied lookup field. An screen pops-up. Here we see the available lookup records -- these are in fact the records we saw when we switched to view the Addresses qualified lookup fields, which means these are the values stored in the non-qualifiers. You have to select & add them (Selected Lookup Records). The qualifiers become enabled. Now you an add values to them.
    You can either use an existing Address type or add a record to the Qualified-Lookup Table from here.  We can add and remove types of addresses -- a main table record may have any number of any type of address. When we add a type, for example "Favourite Restaurant Address"(say), we can enter information for the qualifiers, those field which make sense only when connected to a main table record and a non-qualifier. If we add two "Home" addresses each can have it's own values for the City, Street, Country, State and Postal Code qualifier fields
    To answer 2nd part of your Q - "<i>And where are those qualifier values stored, in the main table or in the qualified table itself?</i>"
    Qualifiers are database “subfields” that apply not to the qualified table record by itself, but <b>rather to each association of a qualified table record with a main table record.</b>
    Hope this helped your cause. Please mark helpful answers.
    Regards,
    Siddharth Sharma.

  • Expression with qualified table fields

    Hi all!
    I have 2 doubts concerning the free-form search and expressions using qualified table.
    We're implementing SRM-MDM Catalog. Here is the scenario
    The search is done in the Main Table (Products). The qualified table (Contract) has the following fields:
    Contract ID: Non-Qualifier
    Contract Item: Non-Qualifier
    Contract Category: Non-Qualifier
    Lower Bound: Non-Qualifier
    Amount: Qualifier
    Currency: Qualifier
    Obsolete: Qualifier
    There are 2 records in the Contract table assigned to the Product in main table:
    123-1-Normal-1-100-BRL-False
    456-1-Normal-1-250-BRL-True
    1st doubt:
    Using the free-form search, if I set the field Contract-Amount to be less than 150, only the record 123-1-Normal-1-100-BRL is listed in the result, which is ok. But if I enter in the expression option the formula Contract.AMOUNT<150, both records are listed:
    123-1-Normal-1-100-BRL
    456-1-Normal-1-250-BRL ???
    Is this formula wrong?
    2nd doubt:
    The Contract info isn't a mandatory information. It's ok to have a product in the main table without a contract assigned to it. This can happen for example if all contracts for a product are obsolete. In the named search, if I select all products where obsolete equals to 'FALSE', only the records of the main table that have at least one valid contract are listed. As the contract info isn't mandatory, I was expecting a different behavior. Also the records that don't have a valid contract should be listed, but the contract information should be blank. Is there a way to do that?
    Thanks!

    check out these tables,
    VBAK Header Data
    VBAP Item Data
    VBAG Release Data by Schedule Line in Sch.Agrmt.
    VBUK Header Status and Administrative Data
    VBUP Item Status
    VBRL SD Document: Invoice List
    VBPA Partner
    VBKD Business Data
    VBKA Sales activities
    VBEP Schedule Line Data
    VBRK Billing: Header Data (invoice)
    VBRP Billing: Item Data (invoice)
    VBFA Sales Document Flow
    VTTP Shipment item
    regards,
    seenu

  • Mapping issue with Qualifier table

    Hi,
    1. I have an issue after mapping all 3  non-qual flds of a qualifier table in main table getting the compound fld enabled but selecting it , not mapping automatically to the appropiate compound field in the destination side, but giving an error message
    "unable to retrieve source record".
    2. The second issue is that after mapping some of the fields and qualified table and loading the maintable data, saving the map but subsequently when trying to open the saved map , it is coming out with the usual main error window
    SAP MDM Import Manager
    SAP Import manager has encountered a problem and needs to close.
    We are sorry for the inconvenience.
    Debug                                          Close
    Appreciate your help/suggestion on this issues.
    regards
    -reo

    Answer for Qn2:
    First you have to map all the display fields to individual Source Fields..
    Once you have mapped all the dispaly fields of the Qualified Table, you have to do value mapping for the Fields that require Value Mapping.
    Ex: Source Field A -> Destination Display Field 1
    Source Field B -> Destination Display Field 2
    Source Field C -> Destination Display Field 3
    Now Value Mapping where required should be done.
    Once the value mapping is done, then you can create a Compound Field.
    If you have done the previous steps correclty, then the compound field name is enabled for you to create Compound Field.
    Now map the newly created Compound Field to the Qualified Lookup field of the main table.
    Now you have to click on the Automap for value mapping.
    Hope this helps.
    Please reward if you find this helpful

  • How to replace a qualified table with Tuple

    Hi Experts!
    I have a Qualified table woth 2 non qualifiers,which refer to 2 lookup flat table and one text field which is Qualifier.
    Now I want to replace this design with tuple.Please give me steps to do so and also how is the linking of field relation maintained in Tuple.
    Thanks
    Ravz

    Hi Ravz,
    Please refer the complete section 5. Migrating from Qualified Lookup Table to Tuple
    Here, must check Page No 48/58 example for converting Qualified tbale to Tuple. It will solve your problem.
    Sample: Manufacturer Part Number (MPN) in standard Products repository
    http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/80765a21-78f3-2b10-74a2-dc2ab57a1bd2?quicklink=index&overridelayout=true
    Regards,
    Mandeep Saini

  • Import  issue with Auto-id in Qualifier table

    Hi,
    I am trying to load Customer_contact table in MDM5.5 sp4 from R3.
    Since SAP-Id is generated in R3, initially portal will send all data to R3 w/o SAP-id but with the MDM-Auto-id.
    In return from R3,MDM receives the SAP-id and Contact-id against this MDM-id for update.
    In conversion,I am getting "Error in Look uptable" "Internal Error"  message to load this file in Main table.
    Is there any workaround to map qualifier table with a auto-id in Main table?
    This auto-id needs to be non-qual for portal to create the initial record in MDM.But since this is a non-qual fld and we are not able to map it in main table giving "Internal error" . It is my guess.
    Appreciate your idea and help
    -reo

    The issue was fixed after dropping the calculated fld as Non-qual one which was giving problem since required to be mapped in Main table.

  • Issues dealing with the Qualified tables

    Hi,
    I am facing below issues while dealing with the Qualified tables.
    Issue # 1. Trying to get the data from the Qualified table through the Main table. Qualified table is set as supporting ResultDefinition. I am able to get the value for only the non-qualifier fields but not the qualifier fields.
    Exception: com.sap.mdm.commands.CommandException: com.sap.mdm.internal.protocol.manual.ServerException: Qualifier values are not part of a qualified lookup record
    Issue # 2. Need to define the search on the fields of a Qualified table with Main table in the ResultDefinition. I am able to define the search on qualifier fields but not the non-qualifier fields.
    Exception:com.sap.mdm.commands.CommandException: com.sap.mdm.internal.protocol.manual.ServerException: Field not found
    I would like to know the standard ways to address these issues.
    Thanks,
    Surendra

    Hello,
    I was wondering if this issue is solved now. I'm still facing the problem when executing the RetrieveLimitedQualifierValuesCommand:
    com.sap.mdm.commands.CommandException: com.sap.mdm.internal.protocol.manual.ServerException: Field not found
    Are there other ways to manipulate qualifier field values? Workarounds... alternatives...
    Is it related to the MDM Java API version?  If yes, is there a fix?
    Thanks a lot for your input!
    Regards,
    Pedro

  • Validation on Phone Qualified Table

    Hello,
    Our main table is Customers and we have a Qualified table Phone.
    We need to create a validation so that if the County (non qualifer) of the Phone table = US, then the length of the complete phone number (qualifier) field must have a lenght equal to10.
    I am writing the Validation against the main table Customers.
    I tried these two and neither work.  I get a valdation error if the Country = US and the complete number = 10.  I get a validation error if the counyty does not equal US.
    IF(Phone.Country.[Record]= Countries[Unites States],LEN(Phone.Complete No.)=10)
    IF(Phone.Country.[Record]= Countries[Unites States],LEN(Phone.Complete No.)=10,FALSE)
    If I do indiviual validations on Country and Complete phone length, then the validation works but i need the combined validation.
    Any suggestions?
    thanks
    Tammi

    Hi Tammi,
    Validations behaves slightly different in case of Qualified table. When you are using length function for Qualifiers then you need to add some number to get the desired result.
    E.g. In your case you want the length of Phone Number = 10 and when you run the Assignment on any text field with assignment expression as Phone.Complete No. you will get some thing like 1:<Complete No.>; i.e. now in writing validations you need to pass LEN(Phone.Complete No.) = 13 to get the desired output.
    Best way to analyze any validation is to create Assignments of individual expression present in the Validation so that one can get the exact value by validation expression.
    Try the below validation. Please take care of brackets
    IF( (IS_NOT_NULL(Phone.Country) AND IS_NOT_NULL(Phone.Complete No.)) , IF(Phone.Country.Record= CountriesUnites States,LEN(Phone.Complete No.)=13) )
    Kindly update us...
    Regards,
    Jitesh Talreja

  • How to delete the row in table control with respect to one field in module pool programming?

    Hi,
    Can I know the way to delete the row in table control with respect to one field in module pool programming
    Regards
    Darshan MS

    HI,
    I want to delete the row after the display of table control. I have created push button as delete row. If I click on this push button, the selected row should get deleted.
    I have written this code,
    module USER_COMMAND_9000 input.
    DATA OK_CODE TYPE SY-UCOMM.
    OK_CODE = SY-UCOMM.
    CASE OK_CODE.
         WHEN 'DELETE'.
            LOOP AT lt_source INTO ls_source WHERE mark = 'X'.
                APPEND LS_SOURCE TO LT_RESTORE.
                DELETE TABLE LT_SOURCE FROM LS_SOURCE.
                SOURCE-LINES = SOURCE-LINES - 1.
            ENDLOOP.
    But I'm unable to delete the selected rows, It is getting deleted the last rows eventhough I select the other row.
    So I thought of doing with respect to the field.

  • Why writes LabVIEW only every 2 seconds the measured Value to a Excel (In a while loop with 100 ms tact)?

    Hi everybody,
    I use the myDAQ to measure speed, ampere, and voltage of a battery driven motor. (For Current measurement, i use a Sensor which outputs a 0-10 V signal). I placed all DAQ-Assitants in a while loop with a [Wait until next ms multiple] clock and set a value of 100 ms. I thougt, Labview will now write into my text file 10 times a second all values. In fact, as you can see in the attached text file, Labview only writes in a unsteady interval of 1-2 seconds a value, which is too less.
    The question: Did I do anything wrong, how can you create VI that writes you lets say 10 values a second into text file? Or is simply the DigitalMultimeter input of the myDAQ not able to sample a rate of 10 Hz? I couldn´t find any information in the specification handbook about the sample rate of the DMM?
    If anyone can help me would be great! Thanx a lot, Markus
    Attachments:
    Measure Speed+Current+Voltage into Excel.vi ‏175 KB
    Test7.txt ‏1 KB

    File I/O is not very efficient. I recommend that you do you file logging in a parallel task. Have one task do your data acquision. This task would then pass the data to be logged to the logging task via a queue. That way your file operations do not impact your data acquision. Also, express VIs are not very efficient. You would be better off accessing that directly using the DAQ VIs. The express VIs contain lots of steps that do not need to be done every time you call it such as initializing the device.
    Mark Yedinak
    "Does anyone know where the love of God goes when the waves turn the minutes to hours?"
    Wreck of the Edmund Fitzgerald - Gordon Lightfoot

  • How to create a unique group field in Qualifier table

    Hi,
    I am trying to use a qualified table in Product maintable like "Site items".
    However I would like to have two non-qual field in that like 'Plant' and 'item#' which should be an unique combination.
    I have tried to create a table(X) with the above two fields with display and another table (Y)that uses the table X for lookup (site-item) so as to make it dispaly and unique both. However when i am using this Y table as a lookup for the qualified table(site items) , not able to load data.
    Error message:
    "Import failed. Unable to find source column index for 'Site Item ID' field"
    Another issue also not able to populate data for the qualified flds even if when able to load data without making a group unique field for this qualified table.
    In MDM 5.5 sp4. Thanks in advance for any tips.
    -reo

    Hi Beena,
                    In the above post of mine I suggested you to use STRING data type.
    As you are telling that when creating TABLE MAINTANENCE GENERATOR you are
    getting an error saying that " Datatype STRING is not supported ". I tried this, what you said is right.
                      After your reply I did research on this and I also met my heads,
    The conclusion is <b>IT IS NOT POSSIBLE TO GENERATE TABLE MAINTANENCE</b> for the table which is using STRING type. At last I can give you one suggestion, i.e., In the short text of that field write STANDARD TEXT name.So that whenever you want, go to this standard text, but the problem is you have to maintain it manually.
    <b>Reward all helpful answers.</b>
    Regards,
    V.Raghavender.

Maybe you are looking for