Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Finance | Project Operations, Human Resources, ...
Answered

Microsoft Dynamics GP eConnect XML execution of UPRCreateBenefitType for Payroll giving error 4315 Stored Procedure= taCreateBenefitBasedOnPayDedCodes Error Description = Based on Records is set to all in UPR40800 - due to this setup individual Based on

(0) ShareShare
ReportReport
Posted on by 25

Hello all.

I'm a newbie and hoping for a little help. Using the e-connect executing the payroll UPRCreateBenefitType using soapUI with below xml payload:

<soapenv:Envelope xmlns:soapenv="">schemas.xmlsoap.org/.../" xmlns:ns="">schemas.microsoft.com/.../01">
<soapenv:Header/>
<soapenv:Body>
<ns:CreateEntity>
<!--Optional:-->
<ns:connectionString>Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBNAME;Data Source=SQLEXPRESS</ns:connectionString>
<!--Optional:-->
<ns:xml>
<![CDATA[
<eConnect xmlns:dt="urn:schemas-microsoft-com:datatypes">
<UPRCreateBenefitType>
<taCreateBenefit>
<BENEFIT>401K </BENEFIT>
<DSCRIPTN>INSTest02</DSCRIPTN>
<INACTIVE>0</INACTIVE>
<BNFBEGDT>12/01/2021</BNFBEGDT>
<BNFENDDT></BNFENDDT>
<VARBENFT>0</VARBENFT>
<BNFTFREQ>1</BNFTFREQ>
<SBJTFDTX>0</SBJTFDTX>
<SBJTSSEC>0</SBJTSSEC>
<SBJTMCAR>0</SBJTMCAR>
<SBJTSTTX>0</SBJTSTTX>
<SBJTLTAX>0</SBJTLTAX>
<SBJTFUTA>0</SBJTFUTA>
<SBJTSUTA>0</SBJTSUTA>
<FFEDTXRT>0</FFEDTXRT>
<FLSTTXRT>0</FLSTTXRT>
<BORCDTYP>1</BORCDTYP>
<BSDORCDS>0</BSDORCDS>
<BNFTMTHD>1</BNFTMTHD>
<BNFFRMLA>0</BNFFRMLA>
<BNFPRCNT_1>0</BNFPRCNT_1>
<BNFPRCNT_2>0</BNFPRCNT_2>
<BNFPRCNT_3>0</BNFPRCNT_3>
<BNFPRCNT_4>0</BNFPRCNT_4>
<BNFPRCNT_5>0</BNFPRCNT_5>
<BNFITAMT_1>0</BNFITAMT_1>
<BNFITAMT_2>0</BNFITAMT_2>
<BNFITAMT_3>0</BNFITAMT_3>
<BNFITAMT_4>0</BNFITAMT_4>
<BNFITAMT_5>0</BNFITAMT_5>
<BNFTRMAX_1>0</BNFTRMAX_1>
<BNFTRMAX_2>0</BNFTRMAX_2>
<BNFTRMAX_3>0</BNFTRMAX_3>
<BNFTRMAX_4>0</BNFTRMAX_4>
<BNFTRMAX_5>0</BNFTRMAX_5>
<BNTRMXUN_1>0</BNTRMXUN_1>
<BNTRMXUN_2>0</BNTRMXUN_2>
<BNTRMXUN_3>0</BNTRMXUN_3>
<BNTRMXUN_4>0</BNTRMXUN_4>
<BNTRMXUN_5>0</BNTRMXUN_5>
<BNPAYPMX>0</BNPAYPMX>
<BNFYRMAX>0</BNFYRMAX>
<Benefit_Fiscal_Max>0</Benefit_Fiscal_Max>
<BNFLFMAX>0</BNFLFMAX>
<W2BXNMBR>0</W2BXNMBR>
<W2BXLABL></W2BXLABL>
<W2BXNMBR2>0</W2BXNMBR2>
<W2BXLABL2></W2BXLABL2>
<W2BXNMBR3>0</W2BXNMBR3>
<W2BXLABL3></W2BXLABL3>
<W2BXNMBR4>0</W2BXNMBR4>
<W2BXLABL4></W2BXLABL4>
<DATAENTDFLT>0</DATAENTDFLT>
<UpdateIfExists>1</UpdateIfExists>
<RequesterTrx>0</RequesterTrx>
</taCreateBenefit>
<taCreateBenefitBasedOnPayDedCodes_Items>
<taCreateBenefitBasedOnPayDedCodes>
<BENEFIT>401K </BENEFIT>
<BORCDTYP>2</BORCDTYP>
<BSDONCDE>401K </BSDONCDE>
<RequesterTrx>0</RequesterTrx>
</taCreateBenefitBasedOnPayDedCodes>
</taCreateBenefitBasedOnPayDedCodes_Items>
</UPRCreateBenefitType>
</eConnect>
]]>
</ns:xml>
</ns:CreateEntity>
</soapenv:Body>
</soapenv:Envelope>

When i executing this payload it's give below error:

<Message><![CDATA[Sql procedure error codes returned:
Error Number = 4315 Stored Procedure= taCreateBenefitBasedOnPayDedCodes Error Description = Based on Records is set to all in UPR40800 - due to this setup individual Based on Records are invalid
Node Identifier Parameters: taCreateBenefitBasedOnPayDedCodes
BENEFIT = 401K
BORCDTYP = 2
BSDONCDE = 401K

Please help me what i am missing 

Categories:
  • Verified answer
    Derek Albaugh Profile Picture
    on at
    RE: Microsoft Dynamics GP eConnect XML execution of UPRCreateBenefitType for Payroll giving error 4315 Stored Procedure= taCreateBenefitBasedOnPayDedCodes Error Description = Based on Records is set to all in UPR40800 - due to this setup individual Based

    That is the code from the taCreateBenefitBasedOnPayDedCodes stored procedure for eConnect, for error number 4315:

    if ( @I_vBENEFIT <> '' and @I_vBSDONCDE <> '' )

    begin

    select @BSDORCDS = BSDORCDS from UPR40800 (nolock) where BENEFIT = @I_vBENEFIT

    if ( @BSDORCDS = 0 )

    begin

    select @O_iErrorState = 4315  

    exec @iStatus = taUpdateString

    @O_iErrorState,

    @oErrString,

    @oErrString output,

    @iAddCodeErrState output

    end

    end

    This is from our 18.3.1200 version of Dynamics GP. If you let me know what version of Dynamics GP you're on, if different, I can double-check that, but I don't know if the eConnect procedures have changed all that much in the last few GP versions.

    In your code above, I see this:

    <BSDORCDS>0</BSDORCDS>

    <BENEFIT>401K </BENEFIT>

    In the UPR40800 table, for the '401K' BENEFIT, is the BSDORCDS value set to 0 or 1, or something else?

    I'd say to open a support case so we can look at this further with you to help expedite a resolution.

    Thank you,

  • Subhash Jak eConnect Profile Picture
    25 on at
    RE: Microsoft Dynamics GP eConnect XML execution of UPRCreateBenefitType for Payroll giving error 4315 Stored Procedure= taCreateBenefitBasedOnPayDedCodes Error Description = Based on Records is set to all in UPR40800 - due to this setup individual Based

    HI @Derek

    Thank you so much for your reply!

    I am still getting the same error.

    select @BSDORCDS = BSDORCDS from UPR40800 (nolock) where BENEFIT = @I_vBENEFIT

    @BSDORCDS is returning me 1

    So please check in the script any other condition for Error Number 4315.

    Error Number = 4315 Stored Procedure= taCreateBenefitBasedOnPayDedCodes Error Description = Based on Records is set to all in UPR40800 - due to this setup individual Based on Records are invalid

    Please have a look on script once again 

  • Suggested answer
    Derek Albaugh Profile Picture
    on at
    RE: Microsoft Dynamics GP eConnect XML execution of UPRCreateBenefitType for Payroll giving error 4315 Stored Procedure= taCreateBenefitBasedOnPayDedCodes Error Description = Based on Records is set to all in UPR40800 - due to this setup individual Based

    Looking at the taCreateBenefitBasedOnPayDedCodes procedure for eConnect, here is the script that determines the 4315 error:

    if ( @I_vBENEFIT <> '' and @I_vBSDONCDE <> '' )
    begin
    select @BSDORCDS = BSDORCDS from UPR40800 (nolock) where BENEFIT = @I_vBENEFIT
    if ( @BSDORCDS = 0 )
    begin
    select @O_iErrorState = 4315

    It looks like you are passing both a BENEFIT and BSDONCDE value, thus it is running the SELECt statement above and if BSDORCDS = 0, it throws this error.

    Thanks

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Ramesh Kumar – Community Spotlight

We are honored to recognize Ramesh Kumar as our July 2025 Community…

Congratulations to the June Top 10 Community Leaders!

These are the community rock stars!

Announcing the Engage with the Community forum!

This forum is your space to connect, share, and grow!

Leaderboard > Finance | Project Operations, Human Resources, AX, GP, SL

#1
Abhilash Warrier Profile Picture

Abhilash Warrier 565

#2
Martin Dráb Profile Picture

Martin Dráb 536 Most Valuable Professional

#3
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 402 Super User 2025 Season 1

Product updates

Dynamics 365 release plans