Checking of duplicate employee code

Hi
Is there anyway to check duplicate personnel no in sap.  I mean to say, there is a possibility to create two employee code for one person.  I want to know is there any standard way available to check this kind of error.
Ravi

Hello Ravi,
Standard system do not allow to create two pernr for same employee. It allowas only incase of concurrent employement. Here Personal ID is assigned to different Pernrs.
Incase personnel number is assigned via internal number assignment then the SAP system does not generate the same personnel number again. In order to ensure this the corresponding       
number range (RP_PREL) is counted up with 1 for every PA40-call.                                                                               
Incase you are using external number assignment then this means the user or any other mechanism proposes the personnel number:for e.g., Feature NUMKR or you can write masterdata user exit ZXPADU01 to generate the personnel number to be used in PA40 -> function module .
Now if you are using NUMKR feature then you will get popup if you are using the same pernr again.
Hope this information will help.
Regards
Pooja

Similar Messages

  • Check for duplicate record in SQL database before doing INSERT

    Hey guys,
           This is part powershell app doing a SQL insert. BUt my question really relates to the SQL insert. I need to do a check of the database PRIOR to doing the insert to check for duplicate records and if it exists then that record needs
    to be overwritten. I'm not sure how to accomplish this task. My back end is a SQL 2000 Server. I'm piping the data into my insert statement from a powershell FileSystemWatcher app. In my scenario here if the file dumped into a directory starts with I it gets
    written to a SQL database otherwise it gets written to an Access Table. I know silly, but thats the environment im in. haha.
    Any help is appreciated.
    Thanks in Advance
    Rich T.
    #### DEFINE WATCH FOLDERS AND DEFAULT FILE EXTENSION TO WATCH FOR ####
                $cofa_folder = '\\cpsfs001\Data_pvs\TestCofA'
                $bulk_folder = '\\cpsfs001\PVS\Subsidiary\Nolwood\McWood\POD'
                $filter = '*.tif'
                $cofa = New-Object IO.FileSystemWatcher $cofa_folder, $filter -Property @{ IncludeSubdirectories = $false; EnableRaisingEvents= $true; NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite' }
                $bulk = New-Object IO.FileSystemWatcher $bulk_folder, $filter -Property @{ IncludeSubdirectories = $false; EnableRaisingEvents= $true; NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite' }
    #### CERTIFICATE OF ANALYSIS AND PACKAGE SHIPPER PROCESSING ####
                Register-ObjectEvent $cofa Created -SourceIdentifier COFA/PACKAGE -Action {
           $name = $Event.SourceEventArgs.Name
           $changeType = $Event.SourceEventArgs.ChangeType
           $timeStamp = $Event.TimeGenerated
    #### CERTIFICATE OF ANALYSIS PROCESS BEGINS ####
                $test=$name.StartsWith("I")
         if ($test -eq $true) {
                $pos = $name.IndexOf(".")
           $left=$name.substring(0,$pos)
           $pos = $left.IndexOf("L")
           $tempItem=$left.substring(0,$pos)
           $lot = $left.Substring($pos + 1)
           $item=$tempItem.Substring(1)
                Write-Host "in_item_key $item in_lot_key $lot imgfilename $name in_cofa_crtdt $timestamp"  -fore green
                Out-File -FilePath c:\OutputLogs\CofA.csv -Append -InputObject "in_item_key $item in_lot_key $lot imgfilename $name in_cofa_crtdt $timestamp"
                start-sleep -s 5
                $conn = New-Object System.Data.SqlClient.SqlConnection("Data Source=PVSNTDB33; Initial Catalog=adagecopy_daily; Integrated Security=TRUE")
                $conn.Open()
                $insert_stmt = "INSERT INTO in_cofa_pvs (in_item_key, in_lot_key, imgfileName, in_cofa_crtdt) VALUES ('$item','$lot','$name','$timestamp')"
                $cmd = $conn.CreateCommand()
                $cmd.CommandText = $insert_stmt
                $cmd.ExecuteNonQuery()
                $conn.Close()
    #### PACKAGE SHIPPER PROCESS BEGINS ####
              elseif ($test -eq $false) {
                $pos = $name.IndexOf(".")
           $left=$name.substring(0,$pos)
           $pos = $left.IndexOf("O")
           $tempItem=$left.substring(0,$pos)
           $order = $left.Substring($pos + 1)
           $shipid=$tempItem.Substring(1)
                Write-Host "so_hdr_key $order so_ship_key $shipid imgfilename $name in_cofa_crtdt $timestamp"  -fore green
                Out-File -FilePath c:\OutputLogs\PackageShipper.csv -Append -InputObject "so_hdr_key $order so_ship_key $shipid imgfilename $name in_cofa_crtdt $timestamp"
    Rich Thompson

    Hi
    Since SQL Server 2000 has been out of support, I recommend you to upgrade the SQL Server 2000 to a higher version, such as SQL Server 2005 or SQL Server 2008.
    According to your description, you can try the following methods to check duplicate record in SQL Server.
    1. You can use
    RAISERROR to check the duplicate record, if exists then RAISERROR unless insert accordingly, code block is given below:
    IF EXISTS (SELECT 1 FROM TableName AS t
    WHERE t.Column1 = @ Column1
    AND t.Column2 = @ Column2)
    BEGIN
    RAISERROR(‘Duplicate records’,18,1)
    END
    ELSE
    BEGIN
    INSERT INTO TableName (Column1, Column2, Column3)
    SELECT @ Column1, @ Column2, @ Column3
    END
    2. Also you can create UNIQUE INDEX or UNIQUE CONSTRAINT on the column of a table, when you try to INSERT a value that conflicts with the INDEX/CONSTRAINT, an exception will be thrown. 
    Add the unique index:
    CREATE UNIQUE INDEX Unique_Index_name ON TableName(ColumnName)
    Add the unique constraint:
    ALTER TABLE TableName
    ADD CONSTRAINT Unique_Contraint_Name
    UNIQUE (ColumnName)
    Thanks
    Lydia Zhang

  • Check for Duplicate Credie Memos

    Hi ,
    We have set up the Duplicate invoice check for our company code.
    Also, in the vendor master we have the " Chk. duplicate invoice " activated. This should check both the invoices and credit memos for duplicate entries.
    However, the same is not working in the case of credit memos and all the parameters such as company code , reference and the invoice date are same for both the credit memos ( even the amount and other parameters ). In the documentation, it is mentioned that this would work for both the invoices and credit memos.
    Still the system does not issue a warning message for the same.
    Can anyone suggest .
    Thanks,
    Srikanth.

    Hi,
    lease check the below OSS note:-
    [https://websmp130.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=31771]
    [http://help.sap.com/saphelp_afs30b/helpdata/en/ce/4f3e39ea3aee02e10000000a114084/content.htm]
    Regards,
    Gaurav

  • Set Check for Duplicate Invoices.

    Hi,
    what is the difference if is set "<b>Set Check for Duplicate Invoices</b>"
    in MIRO?
    Best regards

    HI,
    This check will 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 company code check makes sense if you work with more than one company code.
    Depending on the reference document number entry, the system checks as follows:
    1. If you have entered a reference document number, the system checks whether the invoice matches in the following attributes:
    Company code
    Vendor
    Currency
    Invoice date
    Reference document number
    2. If you have not entered a reference document number, the system
    3. checks whether the invoice matches in the following attributes:
    Company code
    Vendor
    Currency
    Invoice date
    Amount in
    document currency
    Depending on the system settings, a warning message or an error message appears if the system finds an invoice that matches all attributes.
    Requirements
    The field Chk double inv. (Check for duplicate invoice) must be flagged on the Accounting view in the vendor master record.
    Regards
    Aasif

  • Check for duplicate invoices and trigger a workflow

    Hello All,
        I have a requirement to check for duplicate invoices in AP(Accounts payable) and trigger a workflow when duplicate invoices are found. I a not sure how to do any of the above. Please  let me know if you have any information on:
    1) Checking for duplicate invoices in AP
    2) Trigger a workflow
    Are there any standard workflows that checks duplicate invoices?
    Thanks.
    --Mithun

    Hi MD,
    I doubt if system gives an error on FI side when a duplicate invoice is posted.
    I feel you would require a BAdi for it, where you can call your WF using FM SAP_WAPI_START_WORKFLOW.
    Hope it helps.
    Aditya
    P.S also ask your Func Consultants, if there are any settings in the Customization, where you could capture Inv Dt, Inv Amt, Vendor, Company code.
    Edited by: Aditya Varrier on Oct 15, 2008 9:38 AM

  • How can i check the duplicate NPD project name?

    Dear all,
    I would like to know on how i can check the duplicate NPD's project name? I found that some NPD's project is initiate serveral time with the same or semilar name from user name. Supposing the project name was "Smart Pilot". I always found that project may type differently such as "Smart PILOT","smart pilot" or even "Smart Pilots". Supposing i would like to validate all of these name before save by using validation framework, or custom validation. Is it possible?
    Supposing it was possible, can you please guiding me on how?
    Thank you so much in advance for all of the answer.
    Phaithoon W.

    So here is some example code for a quick validator. Note that this uses a hard coded English error message, rather than a translation. If you want to use translations instead, look at some of the examples in the ReferenceImplementations\Validation\SourceCode\ReferenceValidation folder in the Extensibility Pack, and review the Validation Training as well (in the ReferenceImplementations\Validation\Documentation folder).
    Note that the provided code is for demonstration purposes only and is not supported by Oracle.
    The classes:
    using System;
    using System.Data;
    using System.Xml;
    using Xeno.Data.NPD;
    using Xeno.Prodika.Application;
    using Xeno.Prodika.Services;
    using Xeno.Prodika.Validation;
    using Xeno.Prodika.Validation.Validators;
    namespace Oracle.Agile.PlmProcess.Validation
        public class NPDUniqueProjectNameValidatorFactory : XmlConfigValidatorFactoryBase
            protected override IValidator Create_Internal(XmlNode configNode)
                return new NPDUniqueProjectNameValidator();
        public class NPDUniqueProjectNameValidator : BaseValidator
            private const string sql = @"select 1 as dup from NPDPROJECTML where UPPER(title) = UPPER ('{0}') and FKPROJECT <> '{1}' and LANGID = {2}";
            public override bool Validate(IValidationContext ctx)
                var project = ctx.ValidationTarget as INPDProjectDO;
                bool hasDuplicate = false;
                string sqlToExecute = String.Format(sql, project.ProjectML.Title, project.PKID, UserService.UserContext.User.PreferredLanguage);
                using (IDataReader reader = AppPlatformHelper.DataManager.newQuery().execute(sqlToExecute))
                    if (reader.Read())
                        hasDuplicate = true;
                if (hasDuplicate)
                    ctx.AddError(String.Format("A project already exists with the name '{0}'.", project.ProjectML.Title));
                return hasDuplicate;
            private IUserService UserService
                get { return AppPlatformHelper.ServiceManager.GetServiceByType<IUserService>(); }
    Next, add the following to the ValidationSettings.xml file in config\Extensions:
    1. add the validator factory, with a reference name in the config:
    <ValidatorFactories>
            <!-- Custom  Validator Factory declaration goes here -->       
            <add key="NPD_CheckProjectNameForDuplicate" value="Class:Oracle.Agile.PlmProcess.Validation.NPDUniqueProjectNameValidatorFactory,ReferenceValidation" />
    </ValidatorFactories>
    2. Add a rule for NPD project Save event:
    <rule type="3202">
                <condition event="save">
                    <if type="NPD_CheckProjectNameForDuplicate" require="true" report="true" />
                </condition>
    </rule>
    Compile the reference example into a dll, and add that dll into web\npd\bin
    When you try to save a project with a duplicate name, it should now give you the error message.

  • Create Employee code with the mix of alphabets & numeric

    Hai,
    Is there any possibility to create Employee code with the mix of alphabets & numeric instead of the system generated employee code in employee master data? If so,   pls explain.
    Any suggestion is appreciated.
    Thanks,
    Parvatha Solai.N

    Hi Solai,
    You can do a work around for it. Just Leave the Employee ID field as it is. Create a new User Defined field (Alpha Numeric Type) And make it visible on the the employee master data form.
    Step2 : Depending upon your need  write the code that is if it should be auto generated write the code for else leave it blank for the user to enter the employee code.
    Step3: In before action = True. Make the newly created field as mandatory and check whether the value in the field is unique.
    Refer Route Class. Hope you understand
    Regards,
    P. Anand
    Edited by: Anand peter on Jan 2, 2012 11:59 AM

  • Checking for duplicate primary keys on row inserts

    Checking for duplicate primary keys on row inserts
    I have a situation where I will be making bulk table inserts knowing that the primary key value will in some cases already exist. In this is the case I simply want to ignore the duplicate inserts.
    Should I be performing a sub-query on the table and using a statement like:
    where not exist in
    Or is there a cleaner way of discarding or checking for duplicates on insert.
    My concerns were mainly one of performance, as my routine will be inserting a few thousand rows in its operation.

    The MERGE commnad is a good option when a large percentage of the data will exist in the target because it is much more efficient to attempt to update then insert when the update affects zero rows than capture an error and convert it to an update.
    However, since in this case it would appear that only a few rows will alreadys exist and we want to ignore the duplicates when they exist then
    begin
    insert
    exception
    when dup_value_in_index then null;
    end
    would be the way to code this one. The bulk insert version has in 9.2 the ability to store the errors so that they can all be handled at once which means the rest of the array insert can work.
    HTH -- Mark D Powell --

  • How to Avoid Duplicate Employee Number in Custom Form

    Developing A new employee screen, where all the Personal, Assignment, Visa, Passort & Tickets are capture and send for approval. Once it is done. Scheduled Concurrent Program will pick the APPROVED records and create the Employee & Assignment in the HRMS.
    In custom form the employee Number is Last Employee Number in HRMS and Get the Last Employee Number in Custom table (always Custom table employee is higher) and increment by 1 whichever is higher.
    This code written on ON-INSERT trigger.
    SELECT     MAX (TO_NUMBER(employee_number)) + 1 INTO v_max_empno
    FROM     per_all_people_f
    WHERE     employee_number != 99999
    AND     REPLACE ( TRANSLATE (employee_number, '1234567890', '~~~~~~~~~~'),'~', NULL) IS NULL
    AND     business_group_id = :parameter.bg_id ;
    SELECT     MAX (TO_NUMBER(employee_num)) + 1 INTO v_max_empno2
    FROM     xx_employee_details
    WHERE     business_group_id = :parameter.bg_id ;
    IF v_max_empno2 IS NOT NULL THEN
         v_emp_number := v_max_empno2 ;
    ELSE
         v_emp_number := v_max_empno ;
    END IF ;
    :xxempdet.employee_num := v_emp_number ;
    Issue.
    The above is working fine only when data entered from single machine. When multple users are access this form we are getting Duplicate Employee Numbers.
    I need to impliment the process which is Sales Order Number generation without GAPLESS.
    Regards/Prasanth

    Make use of Sequence and use sequence.nextval for fetching the next value to ensure unique values.
    Thanks
    Shree

  • 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

  • Duplicate Item code

    Hi All,
    My query goes like this
    SELECT DISTINCT(T0.[ItemCode]), T0.[ItemName], T1.[OnHand] as STOCK_IN_METER, T2.[Price] as BASE_PRICE, T0.[U_Length_In_Meter],T1.[OnHand]/T0.[U_Length_In_Meter] as STOCK_IN_PIECE, T0.[U_Weight_kgm], T1.[OnHand]* T0.[U_Weight_kgm] as TOTAL_KG FROM OITM T0  INNER JOIN OITW T1 ON T0.ItemCode = T1.ItemCode INNER JOIN OINM T2 ON T0.ItemCode = T2.ItemCode WHERE T1.[WhsCode] ='03' and T0.[ItmsGrpCod] ='102' and  T1.[OnHand] <>0
    Why Duplicate item code is coming and how to solve that?
    Regards,
    Rupa Sarkar

    Hi Rupa,
    There could be many different Prices under OINM for one item. You can only use OITM.LastPurPrc or a specific price under a specific price list for a item.
    Thanks,
    Gordon

  • Duplicate Item Codes

    Every item has 12 digits code.
    Reason of duplicate item code opening:
    1. Different description formats for same part
    2. Different unit of measurement
    3. Different export place(e.g. China and India)
    4. Different old code
    5. Same use of part in different system leads to different catalog
    so different code
    Due to these reason the person who create code for items can’t
    differentiate between the new item and existing item code. This
    leads to opening of new item code for an existing code and hence
    duplicate code.

    Hello,
    I think application do not help you with this. This is business problem not application problem. In my company a few person can create items and a few person can request new items. This process should be centralized and you have make some procedure in your organization. You can make some rules to valid new item before creating it.
    Regards,
    Luko

  • How do i check ensure that SAP checks for duplicate vendor invoice numbers?

    Hi Experts -
    How do I verify that SAP checks for duplicate vendor invoice numbers and blocks duplicate invoices from being paid?
    Thanks!

    Hi
    Pls chek the settigs by following the path
    IMG>Materials Management>Logistics Invoice Verification>Incoming Invoice>Set Check for Duplicate Invoice.
    Here you make the settings for creating a duplicate invoice check.
    Moreever, in the vendor master, you need to tick the check box for duplicate invoice check.
    I suggest you search the Forums before posting a query. There are lots of postings on this issue.
    Thanks & regards
    Sanil K Bhandari

  • Problem in Set Check for Duplicate Invoices

    Hi,
    I have did all the required setting s for check duplicate invoice , but when i do miro , its not giving any error or warning msge.. i did all the config  as per blw link..
    FYI-  in migo, i have entered the 3434 as a invoice ref # in delveriy note column and while doing miro , i have entered 3434 in ref column and give the 3434 as a dlvery note # in item tab .. but its not giving any error?
    Pls guide, where the mistake has gone wrongly??
    Problem in Set Check for Duplicate Invoices
    Edited by: UJ on May 15, 2009 1:45 PM

    Hello,
    Hope you have done all the required configurations for the checking of double invoice and ticked the vendor for the double invoice checking in vendor master record.
    You have to understand the way the system does the double invoice check.
    As per the configuration, if the system identifies an invoice for a vendor whose double invoice check is activated, at the time of MIRO, system will update a separate table.
    So system will check for the double invoice entry among the invoices entered after making the tick in the vendor master.
    i meant to say that, if you are introducing this double invoice check in between the transactions, the check will be valid only for the invoices entered after the activation of double invoice check.
    Regards

  • How  can I get the employee code in the customer master

    Hi
    What are the settings that I do so that I can get the employee code in the customer master?
    We want to create a sales order on a employee , we have HR and SD in the same box.
    regards
    Pravin

    Hi
    I tried xd02 it asks me for the customer , ifi click the search icon it opens up the search where thre is a tab named "Customer by Personnel Numbeer" when i try to search it does not show any employees even thoughi havemanyhired in HR
    Please tell me  what i need to do
    regards
    Pravin

Maybe you are looking for