Count issue for Duplicate values

Business Objects Infoview XI Web Intelligence Doc
I am trying to find out users who have more than 1 monitor and display the count sperately on the report
Result object:- (these are all fields of the monitor table)
Serial number (monitor)
CI ID (staff number)
Instance ID (database unique ID)
Instance ID is the database instance which is unique, CI ID is the staff number of the user
I have created a variable, qualification as u201Cmeasureu201D The variable is constructed as followed
=Count([CI ID]) Where([Instance ID] >"1")
If I add the as a column to the CI ID column it gives me the number of instances for that file number which is what I want to see. I can then filter this to get show staff numbers that have 2 Monitors.  Even though I filter the operand type value(s) for list is greyed out
The issue is I want a total count of the users that have 2 monitors but if I put the CI object on its own it gives me the total number of instances  in table rather than giving me  a total count of users that have 2 monitors
How do I get the total count of users with more than 1 monitor?

Please create two web intelligence variables:
The first one with the name LocalCount and the following formula:
=If (Count([[Instance ID]];Distinct) In ([[CI ID]]) >= 2) Then 1 Else 0
The second one will be the total number of users having more that one monitor. Let's name this TotalUsersMultipleMonitors
=sum([[LocalCount]]) In Report
Display the second variable ( ie. TotalUsersMultipleMonitors ) in a standalone cell.
Regards,
Stratos

Similar Messages

  • Fraudulent digital certificates issued for high-value websites, iOS patch ?

    http://www.zdnet.com/blog/security/microsoft-warns-fraudulent-digital-certificat es-issued-for-high-value-websites/8488?tag=nl.e589
    http://www.h-online.com/security/news/item/SSL-meltdown-forces-browser-developer s-to-update-1213358.html
    this obviously means that iOS could be vulnerable. Mozilla has patched Firefox (all versions), MS just pushed an update, Google patched Chrome already a few days ago, how about Safari and iOS?
    edit: does iOS use OSCP validation?

    I see Safari desktop supports OCSP checking - if manually activated - but does Safari mobile too? as there's hardly any setting available for Safari on idevices it's hard to know...

  • Loop not working for check of duplicate values in a repeating table

    I have a form that is used for marking down problem items, describing the problems and assigning a value to the specified item. In some cases the problems belong to the same class. When they do, the value associated with the problem should only be marked once. If another problem in the same class is documented the value should not be recorded the second time. I have a variable that is called based on a switch statement in the exit event of the field that records the problem item number. The script in the variable is then supposed to check for duplicate values in the table. If no other problem item in that class is selected, then the problem value should be assigned a number. If another item from the same class has already been entered, then the problem value should just be left blank. I will paste the script for the variable below as well as the switch statement. When I used to call the variable based upon the change event for the problem item, the script work. At that time, the switch statement was related to a drop-down menu. We decided to get rid of the drop-down and just have the used type the item number. But to do so, I had to move the switch statement to the exit event for the field. when I did this, the script in the variable no longer worked properly. Here is the switch statment followed by the script in the variable:
    this.rawValue = this.rawValue.toLowerCase();
    var bEnableTextField = true;
    var i = "Inspection Criteria: ";
    var r = "Required Corrections: ";
    switch (this.rawValue)
      case "1a": // 1a- First debit option
        CorrectionsText.CorrectionLang = r+"Correction description for 1st debit";
        ViolCorrSection.ViolationsText.DebitVal = "C";
        ViolCorrSection.Reference.RefLanguage = i+"1st debit reference";
    break;
      case "1b": // 1b- Second debit option
        CorrectionsText.CorrectionLang = r+"Correction description for 2nd debit";
        ViolCorrSection.Reference.RefLanguage = i+"2nd debit reference";
        myScript.group1();
    break; //the script continues for various item numbers...
    ________________ variable script ________________________
    function group1()
    //Used in checking duplication of violations
    var oFields = xfa.resolveNodes("form1.MAINBODYSUB.ViolationsTableSubform.ViolationsTable.ViolCorrSectio n[*].ViolationsText.ItemNo"); // looks to resolve the repeating rows
    var nNodesLength = oFields.length; //assigns the number of rows to a variable
    var currentRow = xfa.resolveNode("form1.MAINBODYSUB.ViolationsTableSubform.ViolationsTable.ViolCorrSection ").index;
    var currentDebit = xfa.resolveNode("form1.MAINBODYSUB.ViolationsTableSubform.ViolationsTable.ViolCorrSection [" + currentRow + "].ViolationsText.DebitVal");
    for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) // this loops through Item Numbers looking for duplicate violations
    //console.println("nNodeCount: " + nNodeCount);
    var nFld = xfa.resolveNode("form1.MAINBODYSUB.ViolationsTableSubform.ViolationsTable.ViolCorrSection [" + nNodeCount + "]");
    //console.println("nFld.ViolationsText.ItemNo: " + nFld.ViolationsText.ItemNo.rawValue);
         if (nFld.ViolationsText.ItemNo.rawValue == "1a" || nFld.ViolationsText.ItemNo.rawValue == "1b" || nFld.ViolationsText.ItemNo.rawValue == "1c" || nFld.ViolationsText.ItemNo.rawValue == "1d") // looks for other 1s
              currentDebit.rawValue = "";
              nNodeCount = nNodesLength;  // stop loop
         else
            currentDebit.rawValue = "5";
    So, if you enter 1b the first time, you should get a value of 5 appearing in the debit value field. If you enter 1c next, because it belongs to the same group of class of problem items, there should be no value assigned. What happens now is that the values for 1b and 1c don't appear at all because the form thinks that the first 1b entry already existed.
    Any ideas? I have a stripped down version of the form that I can email to someone for reference if that would help. Thanks
    P.S. I am working with LiveCycle Designer ES 8.2.1....

    Hi,
    I can have a look at your form, but can you host it somewhere like Acrobat.com or google docs and add a link to it here.
    Regards
    Bruce

  • Customize Alert messages for checking duplicate value and Success alert

    Hi All,
    I want to show two alert against the same "Submit" button to--
    1. Alert messages for checking duplicate value and show the Duplicate value found alert and
    2. Success Alert if the form is success to commit and no duplicate value found.
    I did all thing but when alert-1 shows and i pressed the ok button of the alert then the second alert also shows which i don't want to show.
    Which i can do in this issue? Have there anyone to help me!
    Arif

    Hi Manu,
    I have placed the following code
    1. against the Submit button--
    if error_code=40508 then
         commit_form;
    elsif :USERDELETION.CANCELLATION_USERID is not null then
    do_key('COMMIT_FORM');
    else null;
    end if;
    2. Code against the key-commit trigger in the form level--
    commit_form;
    DECLARE
    vAlert NUMBER;
    BEGIN
    set_alert_property('ALERT_TO_VERIFY',ALERT_MESSAGE_TEXT, 'Your Form has successfully submitted and your Reference id is '||:USERDELETION.REF_NO);
    vAlert:=SHOW_ALERT('ALERT_TO_VERIFY');
    END;
    3. Code against the on-error trigger in the form level--
    DECLARE
    vAlert NUMBER;
    BEGIN
         if ERROR_CODE = 40508 then
    set_alert_property('ERROR_ALERT',ALERT_MESSAGE_TEXT, 'This user deletion request has already submitted of the user named '||'"'||:USERDELETION.FULLNAME||'"');
    vAlert:=SHOW_ALERT('ERROR_ALERT');
    elsif
              ERROR_CODE = 40202 then
    set_alert_property('ERROR_ALERT',ALERT_MESSAGE_TEXT, 'Existing userid must be filled-up !');
    vAlert:=SHOW_ALERT('ERROR_ALERT');
    else
                   message(error_type||to_char(error_text)||': '||error_text);
    end if;
    END;
    If there have any confusion, please ask me.
    Arif

  • Play Count for Duplicate tracks

    It will be nice if we can have an option for every track on enabling which if any duplicate of it is played, the 'Play count' of all duplicates is increased by 1..
    Otherwise, the minor trouble is .. I love a song (say Here Comes the Sun) and have listened to it hundreds of times and recently got hold of a better Bit Rate version of it. Obviously, I will like to listen to the better bit rate track..but this will start me from 0 play count. This may be a slight bother if one is too fussy about smart playlists...
    Or is there a way out..?

    Yep, easy. Go to Doug's Apple Scripts for iTunes...
    http://dougscripts.com/itunes/index.php
    and there you will find a few for adjusting playcounts. I have a couple I use that work great. The main one I use you pick the track, hit the script, type in the number of counts you want to increase or decrease the track and then hit the PLUS or the MINUS button and it adjusts the track,
    So you find Here Comes The Sun in a higher bit rate. You old one say a play count of 27. Select the new track, hit the script, type 27, hit PLUS now the new track says 27. Delete the old track. Tah dah!
    Patrick

  • Count for distinct values ...

    Dear Team,
    I have following situation at hand...
    COLUMN1      COLUMN2      COLUMN3     
    TECH111      A11111      MATERAL1  
    TECH111      A11112      MATERAL2
    TECH111      A11112      MATERAL3
    TECH111      A11113      MATERAL4
    TECH111      A11113      MATERAL5
    TECH111      A11114      MATERAL6
    TECH111      A11115      MATERAL7
    TECH111      A11116      MATERAL8
    The value in column1 is TECH111
    Now i want to count the number of values appearing in column2
    i.e.A11111 appears 1 time, A11112 and A11113 appears 2 time and so on..
    So the final output i need is shown below..
    COLUMN1      COLUMN2      COLUMN3   COLUMN4
    TECH111      A11111      MATERAL1     1    
    TECH111      A11112      MATERAL2   2    
    TECH111      A11112      MATERAL3   2    
    TECH111      A11113      MATERAL4   2    
    TECH111      A11113      MATERAL5   2    
    TECH111      A11114      MATERAL6   1    
    TECH111      A11115      MATERAL7   1    
    TECH111      A11116      MATERAL8   1     
    kindly give me some tips to achieve this
    Regards
    nic...

    Nic,
    Use the formula
    =CountAll(<col2>) In (<col1>,<col2>)
    Regards,
    Harry

  • Item Conversion Template Issue for Oracle Migration - Copy functionality

    Hi,
    I am working on Migration project which is from Radius ERP to Oracle 11.5.10.2.
    Currently working on Item Conversion. This Item conversion having the fileds like (ORGANIZATION_ID,SEGMENT1,DESCRIPTION,ITEM_TYPE,COST_OF_SALES_ACCOUNT,SALES_ACCOUNT,ATTRIBUTE_CATEGORY,ATTRIBUTE1,ATTRIBUTE2,ATTRIBUTE3,ATTRIBUTE4,ATTRIBUTE5,ATTRIBUTE6,ATTRIBUTE7,ATTRIBUTE8,ATTRIBUTE9,ATTRIBUTE10,ATTRIBUTE11,ATTRIBUTE12,ATTRIBUTE13,ATTRIBUTE14,ATTRIBUTE15,GLOBAL_ATTRIBUTE10,REF_INVENTORY_ITEM_ID,REF_ORGANIZATION_ID).
    I have validated those fields and loaded into interfacing to Oracle Successfully in the master Org and Validated through Frontend.
    when I close the form, I will be receiving the below warning message and telling that Template id needs to be assign to the item before assigning item to the Org. The message is showing like
    "*You have not applied a template to this item, please apply a template before assigning this item to an ORG.*"
    Please find the below package which I wrote for this conversion requirement.
    The customer is saying like need to achieve the copy functionality based on the "REF_INVENTORY_ITEM_ID and REF_ORGANIZATION_ID".
    The Issue is am not able to handle the copy functionality and getting above message. kindly refer the package and suggest me where i am doing the mistake. Its high priority issue for me.
    Thanks in advance.
    CREATE OR REPLACE PACKAGE APPS.xxxx_inv_items_conv_pkg
    AS
    PROCEDURE xxx_item_conversion_proc (
    errbuf OUT VARCHAR2,
    retcode OUT VARCHAR2,
    p_org_id IN NUMBER,
    -- p_commit_point IN NUMBER,
    p_load_code IN VARCHAR2
    IS
    <<Local Variables Declaration>> <<For space limit deleted these variables>>
    CURSOR cur_item_master (pc_org_code VARCHAR2)
    IS
    SELECT itemstg.*
    FROM xxx_inv_system_items_stg itemstg
    WHERE itemstg.organization_id = pc_org_code
    AND itemstg.status_flag IS NULL;
    CURSOR cur_item_master_dup (pc_org_code VARCHAR2)
    IS
    SELECT itemstg.segment1, itemstg.organization_id
    FROM xxx_inv_system_items_stg itemstg
    WHERE itemstg.ROWID <
    (SELECT MAX (b.ROWID)
    FROM xxx_inv_system_items_stg b
    WHERE b.segment1 = itemstg.segment1
    AND b.organization_id = itemstg.organization_id
    AND b.organization_id = pc_org_code
    AND itemstg.status_flag IS NULL
    AND b.status_flag IS NULL);
    BEGIN
    IF p_load_code = 'Insert'
    THEN
    l_transaction_type := 'CREATE'; -- Default Value in I/F Table
    ELSIF p_load_code = 'Update'
    THEN
    l_transaction_type := 'UPDATE'; -- Default Value in I/F Table
    END IF;
    DBMS_OUTPUT.put_line ( 'Validation Starts At :'
    || TO_CHAR (SYSDATE, 'DD-MON-YYYY HH24:MI:SS')
    --Checking for Duplicate Records items
    BEGIN
    UPDATE xxx_inv_system_items_stg a
    SET a.status_flag = 'E',
    a.error_message = 'Duplicate Record'
    WHERE a.ROWID >
    ANY (SELECT b.ROWID
    FROM xxx_inv_system_items_stg b
    WHERE a.segment1 = b.segment1
    AND a.organization_id = b.organization_id)
    AND a.organization_id = p_org_id
    AND a.status_flag IS NULL;
    EXCEPTION
    WHEN OTHERS
    THEN
    DBMS_OUTPUT.put_line ('Exception in updating duplicates'
    || SQLERRM
    END;
    DBMS_OUTPUT.put_line ('CheckPoint: Duplicate Record');
    BEGIN
    SELECT organization_id
    INTO l_organization_id
    FROM org_organization_definitions
    WHERE organization_id = p_org_id;
    EXCEPTION
    WHEN NO_DATA_FOUND
    THEN
    DBMS_OUTPUT.PUT_LINE(p_org_id||' Org Does Not Exist');
    -- p_retcode := '2';
    WHEN OTHERS
    THEN
    DBMS_OUTPUT.PUT_LINE('Exception in Getting Org Id'||'Cannot Proceed');
    -- p_retcode := '2';
    END ;
    DBMS_OUTPUT.put_line ('CheckPoint: Orgcode' || l_organization_id);
    /* IF p_retcode = '2'
    THEN
    RETURN;
    END IF;*/
    --Block             : Setting Master and Validation Orgs Flags
    BEGIN
    SELECT DECODE (master_organization_id, l_organization_id, 'Y', 'N'),
    master_organization_id
    INTO l_master_org,
    l_master_org_id
    FROM mtl_parameters
    WHERE organization_id = l_organization_id;
    EXCEPTION
    WHEN OTHERS
    THEN
    l_master_org := 'N';
    l_master_org_id := NULL;
    DBMS_OUTPUT.PUT_LINE(p_org_id||' Org Does Not Exist');
    END ;
    DBMS_OUTPUT.put_line ('master_organization_id');
    SELECT fnd_profile.VALUE ('USER_ID')
    INTO l_user_id
    FROM DUAL;
    -- Block : Set the SET_PROCESS_ID
    l_set_process_id := l_organization_id;
    l_insert_count := 0;
    LOOP
    BEGIN
    SELECT COUNT (segment1)
    INTO l_insert_count
    FROM mtl_system_items_interface
    WHERE set_process_id = l_set_process_id
    AND transaction_type = l_transaction_type
    AND process_flag = 1;
    EXCEPTION
    WHEN OTHERS
    THEN
    l_insert_count := 0;
    END;
    EXIT WHEN l_insert_count = 0;
    l_set_process_id := l_set_process_id + 10;
    END LOOP;
    DBMS_OUTPUT.put_line ('SET PROCESS ID -l_insert_count ' || l_insert_count);
    IF p_load_code = 'Insert'
    THEN
    BEGIN
    FOR recitem_data IN cur_item_master_dup (p_org_id)
    LOOP
    UPDATE xxx_inv_system_items_stg
    SET status_flag = l_processed_flag,
    error_message = l_error_message
    WHERE segment1 = recitem_data.segment1
    AND organization_id = recitem_data.organization_id
    AND status_flag IS NULL;
    COMMIT;
    END LOOP;
    EXCEPTION
    WHEN OTHERS
    THEN
    DBMS_OUTPUT.put_line ( 'Update of Duplicates Failed : '
    || SQLCODE
    || '--'
    || SQLERRM
    END ;
    END IF;
    FOR recitem_data IN cur_item_master (p_org_id)
    LOOP
    <<Local Variables Declaration>> <<For space limit deleted these variables>>
    IF p_load_code = 'Update'
    THEN
    l_error_message := 'Update Mode' || l_error_delimiter;
    END IF;
    --l_count := -1;
    BEGIN
    DBMS_OUTPUT.put_line ('CheckPoint: ItemValidationStart');
    SELECT DISTINCT inventory_item_id,
    restrict_subinventories_code,
    restrict_locators_code
    INTO l_inventory_item_id,
    l_restrict_subinventories_code,
    l_restrict_locators_code
    FROM apps.mtl_system_items_b msi
    WHERE msi.organization_id = l_organization_id
    AND msi.segment1 = UPPER (recitem_data.segment1);
    EXCEPTION
    WHEN NO_DATA_FOUND
    THEN
    l_count := 0;
    -- l_processed_flag := 'F';
    DBMS_OUTPUT.put_line ('inventory_item_id - AFTER MAIN LOOP' || l_inventory_item_id||'-'||l_processed_flag);
    DBMS_OUTPUT.put_line ('inventory_item_id - AFTER MAIN LOOP' || l_inventory_item_id||'-'||recitem_data.ref_inventory_item_id);
    WHEN OTHERS
    THEN
    l_count := -1;
    -- l_processed_flag := 'F';
    DBMS_OUTPUT.put_line ('inventory_item_id - AFTER MAIN LOOP' || l_inventory_item_id||'-'||l_processed_flag);
    END ;
    DBMS_OUTPUT.put_line ('inventory_item_id - AFTER MAIN LOOP'||recitem_data.ref_inventory_item_id);
    IF l_count = -1
    THEN
    l_processed_flag := 'F';
    l_error_message :=
    l_error_message
    || 'Exception - Checking Item already Present'
    || l_error_delimiter;
    DBMS_OUTPUT.put_line ('Exception - Checking Item already Present'||l_processed_flag);
    ELSIF (l_count > 0 AND p_load_code = 'Insert')
    THEN
    l_processed_flag := 'F';
    l_error_message :=
    l_error_message
    || 'Item Already Exists In '
    || p_org_id
    || ' Organization '
    || l_error_delimiter;
    DBMS_OUTPUT.put_line ('Exception - Checking Item already Present1'||l_processed_flag);
    ELSIF (l_count = 0 AND p_load_code = 'Update')
    THEN
    l_processed_flag := 'F';
    l_error_message :=
    l_error_message
    || 'Item Not Present In '
    || p_org_id
    || ' Organization '
    || l_error_delimiter;
    DBMS_OUTPUT.put_line ('Exception - Checking Item already Present2'||l_processed_flag);
    END IF;
    BEGIN
    SELECT count(*)
    INTO l_seg_count
    FROM apps.mtl_system_items_b msi
    WHERE msi.organization_id = l_organization_id
    AND msi.segment1 = UPPER (recitem_data.segment1);
    EXCEPTION
    WHEN NO_DATA_FOUND
    THEN
    l_seg_count := 0;
    l_processed_flag:='F';
    l_error_message :=
    l_error_message
    || 'Item Not Present In Oracle'
    || p_org_id
    || ' Organization '
    || l_error_delimiter;
    DBMS_OUTPUT.put_line ('inventory_item_id - l_seg_count ' ||l_seg_count||'-'||l_processed_flag );
    WHEN OTHERS
    THEN
    l_seg_count := -1;
    l_processed_flag:='F';
    l_error_message :=
    l_error_message
    || 'Item Not Present In Oracle'
    || p_org_id
    || ' Organization '
    || l_error_delimiter;
    END ;
    IF p_load_code = 'Insert'
    THEN
    IF l_organization_id != l_master_org_id
    THEN
    BEGIN
    SELECT COUNT (1)
    INTO l_org_item_count
    FROM apps.mtl_system_items_b msi
    WHERE msi.organization_id = l_master_org_id
    AND msi.segment1 = UPPER (recitem_data.segment1);
    EXCEPTION
    WHEN NO_DATA_FOUND
    THEN
    l_org_item_count := 0;
    DBMS_OUTPUT.put_line ('l_org_item_count ' ||l_org_item_count||'-'||l_processed_flag );
    WHEN OTHERS
    THEN
    l_org_item_count := -1;
    END ;
    IF l_org_item_count = -1
    THEN
    l_processed_flag := 'F';
    l_error_message :=
    l_error_message
    || 'Exception - Checking Item in Master '
    || l_error_delimiter;
    ELSIF l_org_item_count = 0
    THEN
    l_processed_flag := 'F';
    l_error_message :=
    l_error_message
    || 'Item Does Not Exist in Master '
    || l_error_delimiter;
    END IF;
    END IF;
    END IF;
    DBMS_OUTPUT.put_line ( 'CheckPoint: Iteminmasterorg'
    || l_org_item_count
    IF (recitem_data.description IS NULL AND p_load_code = 'Insert')
    THEN
    l_processed_flag := 'F';
    l_error_message :=
    l_error_message || 'Description is NULL' || l_error_delimiter;
    END IF;
    IF (recitem_data.sales_account IS NOT NULL)
    THEN
    BEGIN
    SELECT code_combination_id
    INTO l_sales_account
    FROM gl_code_combinations_kfv
    WHERE code_combination_id= recitem_data.sales_account;
    EXCEPTION
    WHEN NO_DATA_FOUND
    THEN
    -- l_processed_flag := 'F'; --QUESTION
    l_error_message :=
    l_error_message
    || 'Sales Account Not Setup '
    || l_error_delimiter;
    DBMS_OUTPUT.put_line ( 'CheckPoint: Salesacct_Validation'
    || l_sales_account||'-'||l_processed_flag
    WHEN OTHERS
    THEN
    l_processed_flag := 'F';
    l_error_message :=
    l_error_message
    || 'Sales Account Exception '
    || SQLERRM
    || l_error_delimiter;
    DBMS_OUTPUT.put_line ( 'CheckPoint: Salesacct_Validation'
    || l_sales_account||'-'||l_processed_flag
    END ;
    END IF;
    IF (recitem_data.cost_of_sales_account IS NOT NULL)
    THEN
    BEGIN
    SELECT code_combination_id
    INTO l_cost_of_sales_account
    FROM gl_code_combinations_kfv
    WHERE code_combination_id =
    recitem_data.cost_of_sales_account;
    EXCEPTION
    WHEN NO_DATA_FOUND
    THEN
    l_processed_flag := 'F';
    l_error_message :=
    l_error_message
    || 'COGS Account Not Setup '
    || l_error_delimiter;
    DBMS_OUTPUT.put_line ( 'l_cost_of_sales_account'
    || l_cost_of_sales_account||'-'||l_processed_flag
    WHEN OTHERS
    THEN
    l_processed_flag := 'F';
    l_error_message :=
    l_error_message
    || 'COGS Account Exception '
    || SQLERRM
    || l_error_delimiter;
    DBMS_OUTPUT.put_line ( 'l_cost_of_sales_account'
    || l_cost_of_sales_account||'-'||l_processed_flag
    END check_cogs_account;
    END IF;
    BEGIN
    select distinct organization_code
    into l_ref_org_code
    from org_organization_definitions
    where organization_id = recitem_data.ref_organization_id ;
    EXCEPTION
    WHEN OTHERS THEN
    l_ref_org_code:= NULL;
    l_processed_flag:='F';
    l_error_message :=
    l_error_message
    || 'Reference Org Not Present'
    || p_org_id
    || ' Organization '
    || l_error_delimiter ;
    DBMS_OUTPUT.put_line ('l_ref_org_code'|| l_ref_org_code||'-'||l_processed_flag);
    END;
    BEGIN
    select concatenated_segments
    into l_ref_inventory_item_code
    from mtl_system_items_kfv
    where inventory_item_id = recitem_data.ref_inventory_item_id
    and organization_id = recitem_data.ref_organization_id ;
    EXCEPTION
    WHEN OTHERS THEN
    l_ref_inventory_item_code :=NULL;
    l_processed_flag:='F';
    l_error_message :=
    l_error_message
    || 'Reference Item Not Present'
    || p_org_id
    || ' Organization '
    || l_error_delimiter;
    DBMS_OUTPUT.put_line ('l_ref_inventory_item_code'|| l_ref_inventory_item_code||'-'||l_processed_flag);
    END;
    IF (l_master_org = 'N' AND p_load_code = 'Insert')
    THEN
    BEGIN
    SELECT count(*)
    INTO l_description_count
    FROM mtl_system_items_tl
    WHERE organization_id = l_master_org_id
    AND inventory_item_id =
    (SELECT inventory_item_id
    FROM mtl_system_items_b
    WHERE organization_id = l_master_org_id
    AND segment1 = recitem_data.segment1);
    END ;
    IF l_description_count > 0 THEN
    l_processed_flag:='F';
    l_error_message :=
    l_error_message
    || 'Item Description Not Present'
    || p_org_id
    || ' Organization '
    || l_error_delimiter;
    END IF;
    END IF;
    IF l_processed_flag = 'S'
    THEN
    BEGIN
    INSERT INTO mtl_system_items_interface
    (organization_id,
    segment1,
    description,
    ITEM_TYPE,
    COST_OF_SALES_ACCOUNT,
    SALES_ACCOUNT,
    attribute_category,
    set_process_id,
    transaction_type,
    process_flag,
    copy_organization_code,
    copy_item_number,
    creation_date,
    created_by,
    last_updated_by,
    last_update_date
    --attribute_category
    , attribute1
    , attribute2
    ,attribute3
    ,attribute4
    ,attribute5
    ,attribute6
    ,attribute7
    ,attribute8
    ,attribute9
    ,attribute10
    ,attribute11
    ,attribute12
    ,attribute13
    ,attribute14
    ,attribute15
    ,global_attribute10
    VALUES (l_organization_id,
    recitem_data.segment1,
    recitem_data.description,
    recitem_data.ITEM_TYPE,
    recitem_data.COST_OF_SALES_ACCOUNT,
    recitem_data.SALES_ACCOUNT,
    recitem_data.ATTRIBUTE_CATEGORY,
    l_set_process_id,
    l_transaction_type, --,l_transaction_type
    l_process_flag,
    l_ref_org_code,
    l_ref_inventory_item_code,
    SYSDATE, l_user_id,
    l_user_id, SYSDATE
    -- l_attribute_category
    ,recitem_data.attribute1
    ,recitem_data.attribute2
    ,recitem_data.attribute3
    ,recitem_data.attribute4
    ,recitem_data.attribute5
    ,recitem_data.attribute6
    ,recitem_data.attribute7
    , recitem_data.attribute8
    ,recitem_data.attribute9
    , recitem_data.attribute10
    ,recitem_data.attribute11
    ,recitem_data.attribute12
    ,recitem_data.attribute13
    ,recitem_data.attribute14
    ,recitem_data.attribute15
    , substr(recitem_data.global_attribute10,1,length(recitem_data.global_attribute10)-1) --recitem_data.global_attribute10
    l_insert_count := l_insert_count + 1;
    /* IF (l_insert_count = NVL (p_commit_point, 10000))
    THEN
    -- l_set_process_id := l_set_process_id + 10; -- REVERT BACK CHANGE
    l_insert_count := 0;
    END IF;
    EXCEPTION
    WHEN OTHERS
    THEN
    l_processed_flag := 'F';
    l_error_message :=
    l_error_message
    || 'Error in Inserting Item '
    || SQLERRM
    || l_error_delimiter;
    END ;
    COMMIT;
    DBMS_OUTPUT.put_line ('CheckPoint: Insertion Completed in Intfacetable');
    END IF;
    BEGIN
    UPDATE xxx_inv_system_items_stg
    SET status_flag = l_processed_flag,
    error_message = l_error_message
    WHERE segment1 = recitem_data.segment1
    AND organization_id = recitem_data.organization_id
    AND status_flag IS NULL;
    COMMIT;
    DBMS_OUTPUT.put_line ('Error Message'||l_error_message);
    EXCEPTION
    WHEN OTHERS
    THEN
    fnd_file.put_line (fnd_file.LOG,
    'Error:Updating Item:'
    || SQLCODE
    || '-'
    || SQLERRM
    END;
    END LOOP; --FOR recitem_data IN cur_item_master
    DBMS_OUTPUT.put_line ( 'Validation Ends At :'
    || TO_CHAR (SYSDATE, 'DD-MON-YYYY HH24:MI:SS')
    DBMS_OUTPUT.put_line ('Number of records inserted into Table Successfully -->'|| l_insert_count);
    END;
    END xxxx_inv_items_conv_pkg;
    Edited by: 896170 on Apr 12, 2013 11:58 PM

    Issue got solved... changed the PO line amount as:
    <?xdoxslt:set_variable($_XDOCTX,'line_amt',xdoxslt:to_number(LINE_AMOUNT))?>
    Reference :Syntax for 'to_number'
    Regards
    Manikanta Panigrahi

  • This field contains duplicate values. Remove all duplicate values and try the operation again.

    Greetings Everyone,
    I am getting the follow up errors: "This field contains duplicate values. Remove all duplicate values and try the operation again."
    when I tried to make the field "Claim Number" from the list in site collection library. See the screen below:
    1- I selected on the "List" and I clicked on the list name
    "Claim Tracking Report"
    2- After I clicked on the list name then I went to the ribbon and selected list setting to choose Enforce Unique for the Field Column
    "Claim Number"
    3- Then I went down and selected
    "Yes" to Enforced the Unique for the Field Column "Claim Number".
    4- Then after I clicked "Yes" I got the error
    "Sorry, something went wrong. This field contains duplicate values. Remove all duplicate values and try the operation again."  But I don't have any duplicates values Items, because I had them removed before I tried
    to Enforce the field column values to Unique. Can someone help or provide me a suggestions on how I can solve this issue please. Thank you
    FYI: I am using a Nintex Workflow

    Hope this is a list, how many total items are there?
    Please try to open this list as access(link in IE) and run this query in access
    SELECT Claim.[Claim Number], Count(*) AS Expr1
    FROM Claim
    GROUP BY Claim.[Claim Number]
    HAVING (((Count(*))>1));
    Hope it will show something! if this does not show you dups then better to create a separate list and migrate items after configuring unique column.
    Please 'propose as answer' if it helped you, also 'vote helpful' if you like this reply.

  • 1.2.0 reads TNSNAMES.ORA file multiple times and duplicates values in Alias

    Since upgrading to 1.2.0.29.98 (clean install on Win XP SP 2), I have noticed that SQL Developer appears to be reading the TNSNAMES.ORA file multiple times. This results in the Network Alias pop-list on the TNS connection type to have duplicate values, although the number of duplicates for each entry varies widely - from four for the least that I saw and 252 for the most (assuming I counted that right :) ). We have approximately 270 entries in our TNSNAMES.ORA and the first entry in the file appears in the Network Alias list four times and the last entry in the file appears in the list 48 times.
    To be honest, I switched to Basic JDBC connections with 1.1 and only noticed the problem because of some network performance issues - I thought that SQL Developer had hung and I switched on the debugging and could see that it was looping through the TNSNAMES.ORA file. Now that the network performance issues have been resolved, it still takes a little while to open the new connection window, but it is liveable, so I don't know whether the problem is 1.2 specific or not.

    Sue,
    I assume from a bit of testing, that "each tns file on the system" means each file in the TNS_ADMIN location that starts with TNSNAMES.ORA.
    I set my TNS_ADMIN to a local location and copied the current TNSNAMES.ORA from the network location (and chopped it down to a handful of entries). When I restarted SQL Developer I only had a single copy of each alias. If I copied TNSNAMES.ORA to "Copy of TNSNAMES.ORA" I still only had a single copy of each alias. If I copied TNSNAMES.ORA to TNSNAMES.ORA.TXT I then had two copies of each alias.
    Unfortunately, I don't have any say in the maintenance of the network TNS_ADMIN location and it has almost 200 backup copies of the tns file, typically named TNSNAMES.ORA.YYYYMMDD.
    My TNS_ADMIN setting is done as a Windows environment variable. I do not have any TNS_ADMIN setting in my registry.

  • CHECK for duplicate inside a cursor and pass a ouptut parameter in sql server 2008

    Hi All,
    I am inserting a value into a table, Before inserting i am checking that record already exists or not in the target table, If its existsing i am making an entry into errorlog table and set the output parameter to 'errorlog' . This is inside the cursor, as
    il be passing multiple values. Next is I have separate query to get the new record which is not in the target table. Using EXCEPT i get the new record and i insert into a main table. after insertion i set output as 'success'. 
    Here while executing the procedure i pass a duplicate value and a new value. As it is in cursor,first it will insert into errorlog and set output parameter as 'errorlog' .Next it will insert a new record into main table and set output parameter as 'Success'.
    So on completion of the execution of the procedure i get output as success.
    But i should get as errorlog. I should get success only on no errors in the procedure. How i can i achieve this? Please help me.
    Below is my code
    IF NOT EXISTS(SELECT Beginmilepost,BeginTrackName,Endmilepost,EndTrackName
    FROM SSDB_Segment WHERE BeginMilepost>=@BegMP AND EndMilepost<=@EndMP AND SearchID = @SearchID AND Reference = 'Range')
    BEGIN
                     Declare C_Max1 Cursor FOR
    (SELECT Beginmilepost,BeginTrackName,Endmilepost,EndTrackName FROM SSDB_Segment WHERE BeginMilepost = @BegMP AND EndMilepost = @EndMP AND  BeginTrackName = @BegtrkName 
    AND EndTrackName = @EndTrkName  AND SearchID = @SearchID)
      Open C_Max1
      FETCH FROM C_MAX1 INTO @BeginMilepost,@BTrackName,@EndMilepost,@ETrackName
    WHILE(@@FETCH_STATUS=0)
    BEGIN
    IF OBJECT_ID ('tempdb..#temp') IS NOT NULL
    BEGIN
          DROP TABLE #temp
    END--IF
    Select BeginLatitude,BeginLongitude,BeginTrackName,BeginMilepost,BeginMilepostPrefix,BeginMilepostSuffix,EndLatitude,EndLongitude,EndTrackName,EndMilepost,TrainType into #temp
    FROM
    SELECT BeginLatitude= case when @BegLat = 0 THEN NULL ELSE @BegLat end ,BeginLongitude= case when @BegLong=0 THEN NULL ELSE @BEgLong end ,@BTrackName AS BeginTrackName,ROUND(@BeginMilepost ,3) AS BeginMilepost,
    BeginMilepostPrefix= CASE WHEN @BegPrefix = 'null' THEN NULL ELSE @BegPrefix END,BeginMilepostSuffix= CASE WHEN @BegSuffix  = 'null' THEN NULL ELSE @BegSuffix  END,
    EndLatitude=case when @EndLat =0 then NULL else @EndLat end,EndLongitude=case when @Endlong = 0 THEN NULL ELSE @Endlong END,@ETrackName AS EndTrackName,ROUND(@EndMilepost ,3) AS EndMilepost,@TrainType AS TrainType 
    UNION ALL
    select BeginLatitude,BeginLongitude,BeginTrackName,ROUND(BeginMilepost,3) AS BeginMilepost,BeginMilepostPrefix,BeginMilepostSuffix, EndLatitude,EndLongitude,EndTrackName,ROUND(EndMilepost,3) AS EndMilepost,TrainType from SSDB_MaximumPermissibleSpeed)data
    group by  BeginLatitude,BeginLongitude,BeginTrackName,BeginMilepost,EndLatitude,EndLongitude,EndTrackName,EndMilepost,BeginMilepostPrefix,BeginMilepostSuffix,TrainType
    having COUNT(*)>1
    SET @COUNT= (select count(*) from #temp )
    Print @COUNT
    IF @COUNT>=1
    BEGIN
     INSERT INTO ErrorLog_Asset (
                                        ErrorCode,
                                        ErrorMessage,
                                        TableName,
                                        MilepostPrefix,
                                        Milepost
    SELECT
                                     '1',
                                     'Already exists at BeginMp '+ CAST(@BeginMilepost  as varchar) +',EndMp '+ CAST(@EndMilepost as varchar) +' ,Beginlat
    '+CAST(@BegLat   as varchar)
                                     +' ,Endlat '+CAST(@EndLat   as varchar)+', BeginTrackName '+@BTrackName  +' and EndTrackName '+@ETrackName
                                     'MaximumPermissibleSpeed',
                                      CASE WHEN @BegPrefix = 'null' THEN NULL
    ELSE @BegPrefix END ,
    @BeginMilepost  
    SET @output = 'Errorlog'
    END
     IF OBJECT_ID ('tempdb..#Max') IS NOT NULL
    BEGIN
     DROP TABLE #Max
    END--IF
     Select BeginLatitude,BeginLongitude,BeginTrackName,BeginMilepost,BeginMilepostPrefix,BeginMilepostSuffix,EndLatitude,EndLongitude,EndTrackName,EndMilepost,TrainType into #Max from
           (SELECT BeginLatitude= case when @BegLat = 0 THEN NULL ELSE @BegLat end ,BeginLongitude= case when @BegLong=0 THEN NULL ELSE @BEgLong end ,@BTrackName AS BeginTrackName,ROUND(@BeginMilepost ,3)
    AS BeginMilepost,
                  BeginMilepostPrefix= CASE WHEN @BegPrefix = 'null' THEN NULL ELSE @BegPrefix END,BeginMilepostSuffix= CASE WHEN @BegSuffix  = 'null' THEN NULL ELSE @BegSuffix  END,
                  EndLatitude=case when @EndLat =0 then NULL else @EndLat end,EndLongitude=case when @Endlong = 0 THEN NULL ELSE @Endlong END,@ETrackName AS EndTrackName,ROUND(@EndMilepost ,3) AS EndMilepost,@TrainType AS TrainType 
    except
                 select BeginLatitude,BeginLongitude,BeginTrackName,ROUND(BeginMilepost,3) AS BeginMilepost,BeginMilepostPrefix,BeginMilepostSuffix, EndLatitude,EndLongitude,EndTrackName,ROUND(EndMilepost,3) AS EndMilepost,TrainType
    from SSDB_MaximumPermissibleSpeed)data
     Declare C_Max2 Cursor FOR
     Select BeginMilepost,BeginTrackName,EndMilepost,EndTrackName from #Max 
      Open C_Max2
      FETCH FROM C_Max2 INTO  @BeginMP,@BeginTrackName,@EnMP,@EnTrackName
    WHILE(@@FETCH_STATUS=0)
    BEGIN
       IF (Select COUNT(*) from tbl_Trackname )>=1
       BEGIN
     IF (@TrainType IN (SELECT TrainType  FROM SSDB_TrainType )AND (@Speed <>0) AND @BeginMP IS NOT NULL AND @BeginTrackName IS NOT NULL  AND @EnMP IS NOT NULL
     AND @Direction IN (SELECT Direction FROM SSDB_Direction) AND @EnTrackName IS NOT NULL )
     BEGIN-------------
     SET @ID = (Select MAX(MaximumpermissibleSpeedID) from SSDB_MaximumPermissibleSpeed)
    IF @COUNT =0
       BEGIN
                          INSERT INTO SSDB_MaximumPermissibleSpeed
    BeginMilepostPrefix,
    BeginMilepostSuffix,
    BeginMilepost,
    BeginTrackName,
    BeginLatitude,
    BeginLongitude,
    BeginElevation,
    EndMilepostPrefix,
    EndMilepostSuffix,
    EndMilepost,
    EndTrackName,
    EndLatitude,
    EndLongitude,
    EndElevation,
    Direction,
    Speed,
    TrainType,
    Description,
    InsertUser,
    S_ID
                                                     SELECT
      CASE WHEN @BegPrefix = 'null' THEN NULL
      ELSE @BegPrefix END,
                          CASE WHEN @BegSuffix = 'null' THEN NULL
      ELSE @BegSuffix END,
      @BeginMP ,
      @BeginTrackName  ,
      case WHEN @BegLat = 0 THEN NULL
      ELSE @BegLat END,
      CASE WHEN @BegLong=0 THEN NULL
      ELSE @BegLong END ,
      CASE WHEN @BegEle = 0 THEN NULL
      ELSE @BegEle END ,
      CASE WHEN @EndPrefix = 'null' THEN NULL
      ELSE @EndPrefix END,
                          CASE WHEN @EndSuffix = 'null' THEN NULL
      ELSE @EndSuffix END,
      @EnMP ,
      @EnTrackName  ,
      case WHEN @EndLat = 0 THEN NULL
      ELSE @EndLat END,
      CASE WHEN @EndLong=0 THEN NULL
      ELSE @EndLong END ,
      CASE WHEN @EndEle = 0 THEN NULL
      ELSE @EndEle END ,
      @Direction ,
      @Speed ,
      @TrainType ,
      CASE WHEN @Description ='null' THEN NULL
      ELSE @Description END ,
      @InsertUser ,
      @UID     
    INSERT INTO SSDB_MaxSpeed_History
                       MSID,
    BeginMilepostPrefix,
    BeginMilepostSuffix,
    BeginMilepost,
    BeginTrackName,
    BeginLatitude,
    BeginLongitude,
    BeginElevation,
    EndMilepostPrefix,
    EndMilepostSuffix,
    EndMilepost,
    EndTrackName,
    EndLatitude,
    EndLongitude,
    EndElevation,
    Direction,
    Speed,
    TrainType,
    Description,
    S_ID,
    NOTES ,
    [Action] ,
    InsertUser
                                 SELECT 
                          (Select MaximumPermissibleSpeedID from SSDB_MaximumpermissibleSpeed WHERE MaximumPermissibleSpeedID > @ID),
                          CASE WHEN @BegPrefix = 'null' THEN NULL
      ELSE @BegPrefix END,
                          CASE WHEN @BegSuffix = 'null' THEN NULL
      ELSE @BegSuffix END,
      @BeginMP ,
      @BeginTrackName  ,
      case WHEN @BegLat = 0 THEN NULL
      ELSE @BegLat END,
      CASE WHEN @BegLong=0 THEN NULL
      ELSE @BegLong END ,
      CASE WHEN @BegEle = 0 THEN NULL
      ELSE @BegEle END ,
      CASE WHEN @EndPrefix = 'null' THEN NULL
      ELSE @EndPrefix END,
                          CASE WHEN @EndSuffix = 'null' THEN NULL
      ELSE @EndSuffix END,
      @EnMP ,
      @EnTrackName  ,
      case WHEN @EndLat = 0 THEN NULL
      ELSE @EndLat END,
      CASE WHEN @EndLong=0 THEN NULL
      ELSE @EndLong END ,
      CASE WHEN @EndEle = 0 THEN NULL
      ELSE @EndEle END ,
      @Direction ,
      @Speed ,
      @TrainType ,
      CASE WHEN @Description ='null' THEN NULL
      ELSE @Description END ,
      @UID,
      NULL,
      'INSERT',
      @InsertUser 
    set @output='Success'
    --IF ((@COUNT >=1) AND (@COUNT =0))
    --BEGIN
    --  SET @output = 'ErrorLog'
    --END
    --IF (@COUNT = 0)
    -- BEGIN
    --SET @output ='Success'
    --END
    --END
    END
    END------------------------> 
    Deepa

    Hi Deepa,
    If I understand your question correctly, you would like the @Output parameter to contain the value "Success" only if all rows were successful. As soon as one row was found to be a duplicate, the value of @Output at the end of execution should be "ErrorLog".
    Currently, you modify the value of @Output in each iteration of the cursor, so at the end of execution you're left with the last value.
    In order to change that to work the way you want it, you need to set the value of @Output in the beginning of execution (before entering the cursor) to "Success", and as soon as there is a duplicate row, you should modify the value to "ErrorLog". This way,
    if all rows are successful, the value of @Output will be "Success" at the end of execution. On the other hand, if there is even a single duplicate row, the value of @Output will be "ErrorLog" at the end of execution.
    I hope this helps...
    Guy Glantser
    SQL Server Consultant & Instructor
    Madeira - SQL Server Services
    http://www.madeirasql.com

  • Issues regarding theMarker value in inventory BI 7.0

    Hi,
    We are facing an issue with the marker update for Stock vertical.
    As per the process defined by SAP we have loaded the stock report using the marker value of 2LIS_03_BX.
    1.     We ran setup table in R/3 system for initial value of stock  on 26th April 2009
    2.     Marker value was loaded in the inventory cube from 2LIS_03_BX and compressed with Marker Update.
    3.     Historical movements were loaded from 2LIS_03_BF to cube.
    4.     The historical records were compressed with u201CNo Marker Updateu201D.
    5.     The delta loads were started for the inventory cube.
    We came across some materials that were giving incorrect stock values.
    Due to marker value was not coming correct from the extractor 2lIS_03_BX.
    The reason for this was that there were some material documents that were created on 27th of April 2009 were having there posting dates in 16th April 2009.
    As the initialization was done on 26th April, the above mentioned documents did not affect the marker valued and hence they resulted in incorrect calculation of stock.
    We would like to get input on how we can rectify the marker value.
    Kindly help us if someone has faced the same scenario in SAP BI 7.0 related to Stock/Inventory Cube.

    If you cannot ask business users to reverse the document, I guess you have to reverse them by yourself.  The key point here is that your document was not counted in your initial balance. So you have to remove them without touching the marker and reload them with marker update.
    If you cannot identify those documents, I guess you have to do everything again in a clean way.
    If you can identify them, you could do it in the following way.
    1. Load those documents in a repair load.
    2. update your transformation rule a little bit to reverse your key figure. If it's 100, make it -100. Don't touch anything else.
    3. Now load these documents into the cube without marker update.
    4. Put your transformation rule back to original.
    5. Load the documents again in a repair load.
    6. Load them into your cube with marker update.
    You need to temporary hold your delta process while doing the above.

  • How to restrict the duplicate values in lov column of VO based Adv Table

    Hi Gurus,
    I want to restrict the duplicate values at lov which is a colunm in an Adv Table.
    If user enters duplicate values then first it should show an error msg that Duplicate values have been entered.
    After the duplicate values have been removed, then the user can save all the values in the table.
    My Adv Table is based on a VO.
    The link how to restrict the duplicate values at form level
    talks about Adv Table based on a EoVO, which doesnot work in my case.
    My Approach,
    I am iterating through RowSetIterator and committing through PROCEDURE.
    I am able to avoid duplicate entry through a function checkRespId. (given below)
    Below code is for iterating and committing.
    public void saveline(String reqid,String userid)
    System.out.println("RequestId/saveline"+reqid);
    System.out.println("UserId/saveline"+userid);
    OAViewObject vo = (OAViewObject)getRespLineVO1();
    RespLineVORowImpl row = null;
    int fetchedRowCount = vo.getFetchedRowCount();
    RowSetIterator deleteIter = vo.createRowSetIterator("deleteIter");
    if (fetchedRowCount > 0)
    deleteIter.setRangeStart(0);
    deleteIter.setRangeSize(fetchedRowCount);
    for (int i = 0; i < fetchedRowCount; i++)
    System.out.println("Inside the for LOOP");
    row = (RespLineVORowImpl)deleteIter.getRowAtRangeIndex(i);
    String respoidid = row.getAttribute("ResponsibilityId")+"";
    String respname = row.getAttribute("ResponsibilityName")+"";
    String stdate = row.getAttribute("StartDate")+"";
    String enddate = row.getAttribute("EndDate")+"";
    String linestatus ="A";
    if(userid!=null)
    if(!(respoidid.equals("null")) && respoidid!=null)
    String checkingrespid=null;
    checkingrespid = checkRespId(userid,respoidid);+contains no if not duplicate and yes if its duplicate+
    System.out.println("checkingrespid for Resp with ID :"+respoidid+"exists or not "+checkingrespid);
    if(checkingrespid.equals("No"))
         String message, result = null;
    Connection txn = getOADBTransaction().getJdbcConnection();
    try
    calling PROC ...
    catch(Exception e)
    message = "Error in Inserting into line" + e;
    throw new OAException(message, OAException.ERROR);
    else
    throw new OAException("You have entered duplicate no. of values", OAException.ERROR);
    else
    System.out.println("respoidid is null");
    break;
    deleteIter.closeRowSetIterator();
    public String checkRespId(String userid,String respoidid)
    String createRow="No";
    OAViewObject vo = (OAViewObject)findViewObject("CheckRespVO1");
    if (vo != null)
    vo.setWhereClauseParams(null);
    vo.setWhereClauseParam(0, userid);
    vo.setWhereClauseParam(1, respoidid);
    vo.executeQuery();
    System.out.println("ROW COUNT IS "+vo.getRowCount());
    if(vo.getRowCount()>0)
    createRow="Yes";
    else
    createRow="No";
    return createRow;
    Problem:
    I remove the duplicate entries and click on save and get this error.
    Unable to perform transaction on the record. \nCause: The record contains stale data. The record has been modified by another user.
    \nAction: Cancel the transaction and re-query the record to get the new data.
    Thanks,
    Sombit

    Hi Anil,
    I am trying out your code but stuck in inserting the rows
    using your code in URL: http://oracleanil.blogspot.com/2010/09/oaf-passing-table-type-object-to-oracle.html
    I am always getting the same exception i.e COde blast in when I run.
    My modified code is:
    String[] as = null;
    Number[] vNumber = null;
    Number[] vNumberrespid = null;
    Number reqidnumber = null;
    reqidnumber = new Number(Integer.parseInt(reqid));
    Connection txn = getOADBTransaction().getJdbcConnection();
    String mCreateSearchRequestStatement = null;
    OAViewObject vo = (OAViewObject)findViewObject("RespLineVO1");
    int j = vo.getFetchedRowCount();
    try
    System.out.println("abouce try");
    vo.reset();
    if (vo.getFetchedRowCount() > 0)
    System.out.println(String.valueOf("Fetched row count ").concat(String.valueOf(vo.getFetchedRowCount())));
    int i = 0;
    as = new String[j];
    vNumber = new Number[j];
    vNumberrespid = new Number[j];
    while (vo.hasNext())
    vo.next();
    System.out.println(String.valueOf("Inisde the do while loop").concat(String.valueOf(i)));
    vNumber[i] = (reqidnumber);
    vNumberrespid = ((Number)vo.getCurrentRow().getAttribute("ResponsibilityId"));
    as[i] = String.valueOf(vo.getCurrentRow().getAttribute("ResponsibilityName")).concat(String.valueOf(""));
    System.out.println("Request ID "+reqidnumber[i]);//getting null even there is some value selected
    System.out.println("ResponsibilityId "+vNumberrespid[i]);//getting null even there is some value selected
    System.out.println("Resp Name "+as[i] );//getting null even there is some value selected
    i++;
    CallableStatement cs = txn.prepareCall("{call XX_PassTableType.XX_PassTableType_prc(:1, :2,:3)}");
    ARRAY array = new ARRAY(new ArrayDescriptor("APPS.JTF_NUMBER_TABLE", txn), txn, vNumber);
    ARRAY arraynew = new ARRAY(new ArrayDescriptor("APPS.JTF_NUMBER_TABLE", txn), txn, vNumberrespid);
    ARRAY array1 = new ARRAY(new ArrayDescriptor("APPS.JTF_VARCHAR2_TABLE_100", txn), txn, as);
    cs.setArray(1, array);
    cs.setArray(2, arraynew);
    cs.setArray(3, array1);
    cs.registerOutParameter(3, 2003, "JTF_VARCHAR2_TABLE_100");
    cs.execute();
    ARRAY error = null;
    error = (ARRAY)cs.getArray(2);
    if ((error != null) && (error.length() > 0))
    System.out.println(String.valueOf("Error is ").concat(String.valueOf(error.getArray())));
    String[] retError = new String[j];
    retError = (String[])error.getArray();
    System.out.println(String.valueOf("Error in saving data").concat(String.valueOf(retError[0])));
    cs.close();
    catch (Exception exception)
    throw new OAException("code blast", OAException.ERROR);
    Thanks,
    Sombit

  • Validation for duplicate AP invoice

    We would like to prevent duplicate AP invoices from being posted through FB60.   We created an FI validation in OB28 in which the prerequisite = Tcode FB60, and the check is a user exit to check the values in vendor / company code / reference fields and if those 3 fields have the same values as in an existing document, to generate an error message preventing the duplicate document from being posted.
    The above works well for creating new invoices.   However, when we have to make changes to an existing invoice (created through FB60), the system also calls on that validation and generates the error message, even though the only fields we can change on the invoice is payment terms, payment method, payment method supplement and text. 
    Other than modifying the user exit, does anybody know of a better way to do this validation or to prevent duplicate manual invoice from being created?  
    thank you.

    This has already been answered before so extracted part of the reply
    there are two duplicate checks in SAP:
    1. the one for FI documents, this is relevant for all F... postings (but nor for MIRO!)
    this can be turned off or on (in vendor master record) and 6 fields are checked:
    Check Flag for Double Invoices or Credit Memos
    Indicator which means that incoming invoices and credit memos are checked for double entries at the time of entry.
    Use
    Checking Logistics documents
    Firstly, the system checks whether the invoice documents have already been entered in the Logistics invoice verification; the system checks invoices that are incorrect, or invoices that were entered for invoice verification in the background.
    Checking FI documents
    The system then checks whether there are FI or Accounting documents that were created with the original invoice verification or the Logistics verification, and where the relevant criteria are the same.
    Checking Logistics documents
    In checking for duplicate invoices, the system compares the following characteristics by default:
    Vendor
    Currency
    Company code
    Gross amount of the invoice
    Reference document number
    Invoice document date
    If all of these characteristics are the same, the system issues a message that you can customize.
    When you enter credit memos or subsequent adjustments, the system does not check for duplicate invoices.
    Exception: Country-specific solution for Argentina, where invoices and credit memos are checked for duplicate documents.
    No message is issued if you enter a document that has previously been reversed.
    Dependencies
    The system only checks for duplicate invoices in Materials Management if you enter the reference document number upon entering the invoice.
    In Customizing for the Logistics invoice verification, you can specify that the following characteristics should not be checked:
    Reference document number
    Invoice document date
    Company code
    This means that you can increase the likelihood that the system will find a duplicate invoice, because you can reduce the number of characteristics checked.
    Example
    The following document has already been entered and posted:
    Reference document number: 333
    Invoice date: 04/28/00
    Gross invoice amount: 100.00
    Currency: EUR
    Vendor: Spencer
    Company code: Munich
    You have made the following settings in Customizing:
    The field "Reference document number" and "Company code" are deselected, which means that these characteristics will not be checked.
    Now you enter the following document:
    Reference document number: 334
    Invoice date: 04/28/00
    Gross invoice amount: 100.00
    Currency: EUR
    Vendor: Spencer
    Company code: Berlin
    Result
    Because you entered a reference document when you entered the invoice, the system checks for duplicate invoices.
    The reference document number and the company code are different from the invoice entered earlier, but these characteristics are not checked due to the settings you have made in Customizing.
    All other characteristics are the same. As a result, the system issues a message that a duplicate entry has been made.
    If the "Reference document number" had been selected in Customizing, the system would have checked the document and discovered that it was different from the invoice entered earlier, so it would not have issued a message.
    Checking FI documents
    Depending on the entry in the field "Reference", one of the following checks is carried out:
    1. If a reference number was specified in the sequential invoice/credit memo, the system checks whether an invoice/credit memo has been posted where all the following attributes agree:
    Company code
    Vendor
    Currency
    Document date
    Reference number
    2. If no reference number was specified in the sequential invoice/credit memo, the system checks whether an invoice/credit memo has been posted where all the following attributes agree:
    Company code
    Vendor
    Currency
    Document date
    Amount in document currency
    2. the one for LIV.
    this can be customized (as stated above) and is relevant for MIRO (and not for F... postings!).
    Company, Reference and Invoice date
    Set Check for Duplicate Invoices
    In this step, you can configure for each company code if the system is to check for duplicate invoices when you enter invoices.
    This check should prevent incoming invoices being accidentally entered and paid more than once.
    You can choose whether to activate or deactivate the check criteria of company code, reference document number and invoice date for each company code. The more criteria that you activate, the lower the probability of the system finding a duplicate invoice. The Accounting documents are checked first, followed by documents from Logistics Invoice Verification (only incorrect invoices or those entered for verification in the background).
    When checking duplicate invoices, the system compares the following
    attributes in the standard system:
    Vendor
    Currency Company code
    Gross invoice amount Reference document number
    1. Invoice date If the system finds an invoice that matches all attributes, the system
    displays a customizable message.
    If you are entering credit memos, subsequent debits, or subsequent
    credits, the system does not check for duplicate invoices.
    The exception is the Argentina country version, where the system checks
    for duplicate invoices and credit memos.
    If a previously processed document is later cancelled and then entered
    again, no message is displayed.
    Requirements
    The system only checks for duplicate invoices in Materials Management
    if you specify a reference document number when entering the invoice.
    In Customizing (IMG) for Invoice Verification, you can specify that the
    system check the following attributes

  • Mapping Issue for IDoc to JDBC interface

    Hi All,
      I am having problem in implementing logic in IDoc to JDBC interface where I have to filter out E1WBB07-KSCHL = VKP0.
      Source IDoc structure is like ->
    E1WBB01(occ 0 -1000)
      |-> E1WBB03 (occ 0-100)
                |-> E1WBB07(occ 0-1000)
                         |-> KSCHL
                              DATAB
                              DATBI
    Now, For each KSCHL = VKA0 there should be a duplicate VKP0 record. From these 2 records only the VKA0 should get processed and VKP0 ignored.
    Duplicates for VKP0 and VKA0 can be identified by identical DATAB and DATBI.
    Suppose, in one  E1WBB03 segment,there are 4 E1WBB07 segment having following values.
    1: KSCHL=VKP0, DATAB=20102011, DATBI=25102011
    2: KSCHL=VKP0, DATAB=26102011, DATBI=30102011
    3: KSCHL=VKA0, DATAB=26102011, DATBI=30102011
    4: KSCHL=VKP0, DATAB=01112011, DATBI=31129999
    2 & 3 are duplicates. From these, 2 should get dropped.
    As a result only 1, 3 and 4 should get  processed.
    How can I proceed with this..?...I have tried some work around but not able to do it successfully. Is a UDF required to compare DATAB and DATBI. If yes how it can be written.?
    Thnx in advance,
    Praveen.

    chk below mapping:
    change the context of DATAB, DATAB1 and KSCHL to E1WBB03 (right click-> context) in all the mappings shown below
    1)
    DATAB
    ------------concat-----sort----splibyvalue(value change)-----collapse context---TargetNode
    DATBI
    2)
    DATAB
    ------------concat-----sortbykey \
    DATBI                    /        \
    KSCHL------------/                 \
    ----------------------------------------FormatByExample----sort-----UDF1----Target KSCHL
    DATAB                                    /
    ----concat---sort--splibyvalue(value change)-
    DATBI
    3)
    DATAB
    ---concat ( ; )-----sort-splibyvalue(value change)---collapse context--splitbyvalue (each value)--UDF2---TargetDATAB
    DATBI
    4)
    DATAB
    ------------concat ( ; )-----sort----splibyvalue(value change)-----collapse context--splitbyvalue (each value)--UDF3---TargetDATABI
    DATBI
    UDF1: execution type : all values of a context...input: var1
    int a=var1.length;
    int count=0;
    if(a>=2)
    for(int i=0;i<a;i++)
    if(var1<i>.equals("VKA0"))
    count= count+1;
    else
    result.addValue(var1[0]);
    if(count>1)
    for(int i=0;i<count;i++)
    result.addValue("VKA0");
    UDF2:execution type: single value...input: var1
    String [] temp= var1.split(";");
    return temp[0];
    UDF3: execution type: single value...input: var1
    String [] temp= var1.split(";");
    return temp[1];

  • Hitting error LDAP: error code 20 - mail attribute has duplicate value.

    Hi ,
    Anyone  faced this issue before LDAP: error code 20 - mail attribute has duplicate value. We are getting this error intermittently  in oid logs and 
    and due to that  provisioning stuck . I know that the issue due to the object class mismatch in attributes. But  map profile looks fine . Anything else need to check ?
    SSO verion 10.4.1.3 and DB version 10g .
    javax.naming.directory.AttributeInUseException: [LDAP: error code 20 - mail attribute has duplicate value.]; remaining name 'uid=abc,cn=users,dc=xyz ,dc=com'
            at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:2972)
            at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2934)
            at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2740)
            at com.sun.jndi.ldap.LdapCtx.c_modifyAttributes(LdapCtx.java:1440)
            at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_modifyAttributes(ComponentDirContext.java:255)
            at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:172)
            at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:161)
            at javax.naming.directory.InitialDirContext.modifyAttributes(InitialDirContext.java:146)
            at oracle.ldap.odip.gsi.LDAPWriter.modify(LDAPWriter.java:479)
            at oracle.ldap.odip.gsi.LDAPWriter.writeChanges(LDAPWriter.java:318)
            at oracle.ldap.odip.engine.AgentThread.mapExecute(AgentThread.java:656)
            at oracle.ldap.odip.engine.AgentThread.execMapping(AgentThread.java:377)
            at oracle.ldap.odip.engine.AgentThread.run(AgentThread.java:238)
    DIP_LDAPWRITER_ERROR_MODIFY
    Error in executing mapping DIP_LDAPWRITER_ERROR_MODIFY
    DIP_LDAPWRITER_ERROR_MODIFY
            at oracle.ldap.odip.engine.AgentThread.mapExecute(AgentThread.java:830)
            at oracle.ldap.odip.engine.AgentThread.execMapping(AgentThread.java:377)
            at oracle.ldap.odip.engine.AgentThread.run(AgentThread.java:238)
    DIP_LDAPWRITER_ERROR_MODIFY
    Setting Change Success Count : 27682
    Setting Change Failure Count : 11004
    CDSImportProfile:Error in Mapping EngineDIP_LDAPWRITER_ERROR_MODIFY
    DIP_LDAPWRITER_ERROR_MODIFY
            at oracle.ldap.odip.engine.AgentThread.mapExecute(AgentThread.java:851)
            at oracle.ldap.odip.engine.AgentThread.execMapping(AgentThread.java:377)
            at oracle.ldap.odip.engine.AgentThread.run(AgentThread.java:238)
    CDSImportProfile:about to Update exec status

    did you search the LDAP server to see whether the email value you try to use already exist ?  typically LDAP server do not care whether email is duplicated or not, but by default OIM server do not allow duplicated email

Maybe you are looking for