Skip to main content

Notifications

Announcements

No record found.

Finance | Project Operations, Human Resources, ...
Suggested answer

1 user record is showing by a report all others are not showing

(0) ShareShare
ReportReport
Posted on by 3,066

HRReport.pngfrontendHr.pngErrorwithHRReport.png

Hi Experts,

Very strange Error, i am facing , the images will give you a clear idea.First

As i run Employee vocation Report from AOT it shows data for one employee not for all. As select that employee number in parameters. If i select all other employee number it will generate error as shown in image.

second point:   If i run that report employee vocation from AOT it will work for that one employee not for other as i run it from front end it will not show record for anyone even that one employee shown in AOT.

This error is coming for 5 Report same error for 5 Reports please check in the above image.

Best Regard,

Shabir Ahmad

  • Shabir Ahmad Profile Picture
    Shabir Ahmad 3,066 on at
    RE: 1 user record is showing by a report all others are not showing

    Hi André Arnaud de Calavon,

    Yes, here is some custom table these reports are developed by the vendor of the company, and i am new here, recently i joined this company. Thanks for your valuable suggestion.

    Best Regards,

    Shabir Ahmad

  • Suggested answer
    André Arnaud de Calavon Profile Picture
    André Arnaud de Cal... 291,784 Super User 2024 Season 2 on at
    RE: 1 user record is showing by a report all others are not showing

    Hi Shabir,

    There are custom tables in your coding. I don't know if you joined them correctly. Apart from that, it is not recommended to use direct SQL statement commands in x++ coding. If you need performance, I would recommend to have a look at the insert_recordset command which is much faster then a loop and insert the records: docs.microsoft.com/.../optimizing-record-inserts

    The culprit might be the line with 'vacationsTmp.clear();'.

    If this doesn't help, I would recommend to use the debugger to see if records will be returned by the many queries or not.

  • Shabir Ahmad Profile Picture
    Shabir Ahmad 3,066 on at
    RE: 1 user record is showing by a report all others are not showing

    RSEmplVacationTable.pngVacationTmp.pngRSExtendedDirTable.png

    Hi Sergei Minozhenko,
    1)I have only one company
    2) Yes, vacationtmp Table is there and table type is tmpDB.
    3) Yes, i see see tables RSVACATIONREQUESTTABLE and RSEXTENDEDDIRPERSON1 in AOT

    For more infor please check the above images.

    Best Regards,

    Shabir Ahmad

  • Sergei Minozhenko Profile Picture
    Sergei Minozhenko 23,089 on at
    RE: 1 user record is showing by a report all others are not showing

    Hi Shabir,

    1. Do you have only one company or several companies in that environment?

    2. Can you check if VacationsTmp is Tmp table and what kind of temp table in AOT? Does it have any unique indexes?

    3. Do you see tables RSVACATIONREQUESTTABLE and RSEXTENDEDDIRPERSON1 in AOT? If yes, could, please, check if data is stored per company or not?

  • Shabir Ahmad Profile Picture
    Shabir Ahmad 3,066 on at
    RE: 1 user record is showing by a report all others are not showing

    Hi André Arnaud de Calavon,

    Please check DP and Contract classe

    [

       SRSReportParameterAttribute(classstr(VacationTypeContract))

    ]

    class VacationtypeDP extends SRSReportDataProviderBase

    {

       VacationsTmp        vacationsTmp;

       RSVacationIdType    rsVacationId;

       RSVacationIdType    rsVacationIdFrom;

       RSVacationIdType    rsVacationIdTo;

       date                rsVacationFromDate1, rsVacationFromDate2;

       date                rsVacationToDate1, rsVacationToDate2;

       EmplId              emplFrom, emplTo;

       RSIsEmployed        _isEmployed;

       NotReturnedFromVacation  _isReturned;

    }

    private void getReportParameters()

    {

       VacationTypeContract contract = this.parmDataContract();

       ;

       if (contract)

       {

               rsVacationIdFrom        = contract.parmRsVacationIdFrom();

               rsVacationIdTo          = contract.parmRsVacationIdTo();

               emplFrom                = contract.parmEmplIdFrom();

               emplTo                  = contract.parmEmplIdTo();

               rsVacationFromDate1     = contract.parmRsVacationFromDate1();

               rsVacationFromDate2     = contract.parmRsVacationFromDate2();

               rsVacationToDate1       = contract.parmRsVacationToDate1();

               rsVacationToDate2       = contract.parmRsVacationToDate2();

               _isEmployed             = contract.parmIsEmployed();

               _isReturned             = contract.parmNotReturnedFromVacation();

       }

       if (rsVacationIdFrom =='')

           rsVacationIdFrom = '00';

       if (rsVacationIdTo=='')

           rsVacationIdTo = '99';

       if (emplFrom=='')

           emplFrom = '000000';

       if (emplTo=='')

           emplTo ='999999';

    }

    [SRSReportDataSetAttribute("VacationsTmp")]

    public VacationsTmp getVacationsTmp()

    {

       select * from  vacationsTmp;

       return vacationsTmp;

    }

    public RSIsEmployed IsEmployed(EmplId _emplId, RSExtendedHRMEmplStatus     _status)

    {

       RSIsEmployed    ret;

       switch (_status)

       {

           case 1,3,4,7:

               ret = 0;

               break;

           default:

               ret = 1;

               break;

       }

       //info(strFmt("Status for %1 is %2",_emplId,_status));

       return ret;

    }

    [SysEntryPointAttribute]

    public void processReport()

    {

       ResultSet       RS;

       str             fromDate1, toDate1, fromDate2, toDate2;

       str             strSql;

       int             serialNumber=0;

       ;

       this.getReportParameters();

       fromDate1           = date2String(rsVacationFromDate1);

       toDate1             = date2String(rsVacationToDate1);

       fromDate2           = date2String(rsVacationFromDate2);

       toDate2             = date2String(rsVacationToDate2);

       if (_isEmployed == RSIsEmployed::Both)

       {

           if (!_isReturned)

           {

               strSql = "SELECT T1.EMPLID, T1.RSVACATIONID, T1.RSVACATIONFROMDATE, T1.RSVACATIONTODATE, T1.RSTOTALDAYS, T1.RSVACATIONACTUALRETURNDATE, T1.NOTES, T2.ISEMPLOYED " +

                       "FROM RSVACATIONREQUESTTABLE AS T1 INNER JOIN " +

                       " RSEXTENDEDDIRPERSON1 AS T2 ON T1.EMPLID = T2.EMPLID " +

                       "WHERE T1.RSVACATIONFROMDATE >= '" + fromDate1 +

                       "' AND T1.RSVACATIONFROMDATE <= '" + fromDate2 +

                       "' AND T1.RSVACATIONTODATE >= '" + toDate1 +

                       "' AND T1.RSVACATIONTODATE <= '" + toDate2 +

                       "' AND T1.RSVACATIONID >= N'" + rsVacationIdFrom +

                       "' AND T1.RSVACATIONID <= N'" + rsVacationIdTo +

                       "' AND T1.EMPLID >= N'" + emplFrom +

                       "' AND T1.EMPLID <= N'" + emplTo +

                       "' ORDER BY T1.EMPLID";

           }

           else

           {

               strSql = "SELECT T1.EMPLID, T1.RSVACATIONID, T1.RSVACATIONFROMDATE, T1.RSVACATIONTODATE, T1.RSTOTALDAYS, T1.RSVACATIONACTUALRETURNDATE, T1.NOTES, T2.ISEMPLOYED " +

                       "FROM RSVACATIONREQUESTTABLE AS T1 INNER JOIN " +

                       " RSEXTENDEDDIRPERSON1 AS T2 ON T1.EMPLID = T2.EMPLID " +

                       "WHERE T1.RSVACATIONFROMDATE >= '" + fromDate1 +

                       "' AND T1.RSVACATIONFROMDATE <= '" + fromDate2 +

                       "' AND T1.RSVACATIONTODATE >= '" + toDate1 +

                       "' AND T1.RSVACATIONTODATE <= '" + toDate2 +

                       "' AND T1.RSVACATIONID >= N'" + rsVacationIdFrom +

                       "' AND T1.RSVACATIONID <= N'" + rsVacationIdTo +

                       "' AND T1.EMPLID >= N'" + emplFrom +

                       "' AND T1.EMPLID <= N'" + emplTo +

                       "' AND T1.RSVACATIONACTUALRETURNDATE = '' ORDER BY T1.EMPLID";

           }

       }

       else

       {

           if (_isEmployed == RSIsEmployed::OnService)

           {

               if (!_isReturned)

               {

                   strSql = "SELECT T1.EMPLID, T1.RSVACATIONID, T1.RSVACATIONFROMDATE, T1.RSVACATIONTODATE, T1.RSTOTALDAYS, T1.RSVACATIONACTUALRETURNDATE, T1.NOTES, T2.ISEMPLOYED " +

                           "FROM RSVACATIONREQUESTTABLE AS T1 INNER JOIN " +

                           " RSEXTENDEDDIRPERSON1 AS T2 ON T1.EMPLID = T2.EMPLID " +

                           "WHERE T1.RSVACATIONFROMDATE >= '" + fromDate1 +

                           "' AND T1.RSVACATIONFROMDATE <= '" + fromDate2 +

                           "' AND T1.RSVACATIONTODATE >= '" + toDate1 +

                           "' AND T1.RSVACATIONTODATE <= '" + toDate2 +

                           "' AND T1.RSVACATIONID >= N'" + rsVacationIdFrom +

                           "' AND T1.RSVACATIONID <= N'" + rsVacationIdTo +

                           "' AND T1.EMPLID >= N'" + emplFrom +

                           "' AND T1.EMPLID <= N'" + emplTo +

                           "' AND T2.ISEMPLOYED = 0 ORDER BY T1.EMPLID";

               }

               else

               {

                   strSql = "SELECT T1.EMPLID, T1.RSVACATIONID, T1.RSVACATIONFROMDATE, T1.RSVACATIONTODATE, T1.RSTOTALDAYS, T1.RSVACATIONACTUALRETURNDATE, T1.NOTES, T2.ISEMPLOYED " +

                           "FROM RSVACATIONREQUESTTABLE AS T1 INNER JOIN " +

                           " RSEXTENDEDDIRPERSON1 AS T2 ON T1.EMPLID = T2.EMPLID " +

                           "WHERE T1.RSVACATIONFROMDATE >= '" + fromDate1 +

                           "' AND T1.RSVACATIONFROMDATE <= '" + fromDate2 +

                           "' AND T1.RSVACATIONTODATE >= '" + toDate1 +

                           "' AND T1.RSVACATIONTODATE <= '" + toDate2 +

                           "' AND T1.RSVACATIONID >= N'" + rsVacationIdFrom +

                           "' AND T1.RSVACATIONID <= N'" + rsVacationIdTo +

                           "' AND T1.EMPLID >= N'" + emplFrom +

                           "' AND T1.EMPLID <= N'" + emplTo +

                           "' AND T2.ISEMPLOYED = 0 AND T1.RSVACATIONACTUALRETURNDATE = '' ORDER BY T1.EMPLID";

               }

           }

           else

           {

               if (!_isReturned)

               {

                   strSql = "SELECT T1.EMPLID, T1.RSVACATIONID, T1.RSVACATIONFROMDATE, T1.RSVACATIONTODATE, T1.RSTOTALDAYS, T1.RSVACATIONACTUALRETURNDATE, T1.NOTES, T2.ISEMPLOYED " +

                           "FROM RSVACATIONREQUESTTABLE AS T1 INNER JOIN " +

                           " RSEXTENDEDDIRPERSON1 AS T2 ON T1.EMPLID = T2.EMPLID " +

                           "WHERE T1.RSVACATIONFROMDATE >= '" + fromDate1 +

                           "' AND T1.RSVACATIONFROMDATE <= '" + fromDate2 +

                           "' AND T1.RSVACATIONTODATE >= '" + toDate1 +

                           "' AND T1.RSVACATIONTODATE <= '" + toDate2 +

                           "' AND T1.RSVACATIONID >= N'" + rsVacationIdFrom +

                           "' AND T1.RSVACATIONID <= N'" + rsVacationIdTo +

                           "' AND T1.EMPLID >= N'" + emplFrom +

                           "' AND T1.EMPLID <= N'" + emplTo +

                           "' AND T2.ISEMPLOYED = 1 ORDER BY T1.EMPLID";

               }

               else

               {

                   strSql = "SELECT T1.EMPLID, T1.RSVACATIONID, T1.RSVACATIONFROMDATE, T1.RSVACATIONTODATE, T1.RSTOTALDAYS, T1.RSVACATIONACTUALRETURNDATE, T1.NOTES, T2.ISEMPLOYED " +

                           "FROM RSVACATIONREQUESTTABLE AS T1 INNER JOIN " +

                           " RSEXTENDEDDIRPERSON1 AS T2 ON T1.EMPLID = T2.EMPLID " +

                           "WHERE T1.RSVACATIONFROMDATE >= '" + fromDate1 +

                           "' AND T1.RSVACATIONFROMDATE <= '" + fromDate2 +

                           "' AND T1.RSVACATIONTODATE >= '" + toDate1 +

                           "' AND T1.RSVACATIONTODATE <= '" + toDate2 +

                           "' AND T1.RSVACATIONID >= N'" + rsVacationIdFrom +

                           "' AND T1.RSVACATIONID <= N'" + rsVacationIdTo +

                           "' AND T1.EMPLID >= N'" + emplFrom +

                           "' AND T1.EMPLID <= N'" + emplTo +

                           "' AND T2.ISEMPLOYED = 1 AND T1.RSVACATIONACTUALRETURNDATE = '' ORDER BY T1.EMPLID";

               }

           }

       }

       RS = jadSQLUtility::executeQuery(strSql);

       //delete_from vacationsTmp;

       while(RS.next())

       {

           serialNumber++;

           vacationsTmp.SN                         = serialNumber;

           vacationsTmp.EmplId                     = RS.getString(1);

           vacationsTmp.EmplName                   = RSExtendedEmplTable::find(vacationsTmp.EmplId).name();

           vacationsTmp.RSVacationId               = RS.getString(2);

           vacationsTmp.VacationTypeDesc           = RSVacationSetupTable::find(vacationsTmp.RSVacationId).Description;

           vacationsTmp.RSVacationFromDate         = RS.getDate(3);

           vacationsTmp.RSVacationToDate           = RS.getDate(4);

           vacationsTmp.RSTotalDays                = RS.getInt(5);

           vacationsTmp.RSVacationActualReturnDate = RS.getDate(6);

           vacationsTmp.IsEmployed                 = this.IsEmployed(vacationsTmp.EmplId, RSExtendedEmplTable::find(vacationsTmp.EmplId).Status);

           vacationsTmp.Notes                      = RS.getString(7);

           vacationsTmp.insert();

           vacationsTmp.clear();

       }

    }

    Data Contract class details

    [

       DataContractAttribute,

       SysOperationGroupAttribute("VacationIdGroup", "@RPF1651", "1", FormArrangeMethod::HorizontalFlushRight),

       SysOperationGroupAttribute("EmplGroup", "@SYS36113", "2", FormArrangeMethod::HorizontalFlushRight),

       SysOperationGroupAttribute("DateFromGroup", "@SYS4008338", "3", FormArrangeMethod::HorizontalFlushRight),

       SysOperationGroupAttribute("DateToGroup", "@SYS4008335", "4", FormArrangeMethod::HorizontalFlushRight)

    ]

    public class VacationTypeContract

    {

       EmplId                      emplIdFrom, emplIdTo;

       RSVacationIdType            rsVacationIdFrom, rsVacationIdTo;

       date                        rsVacationFromDate1, rsVacationFromDate2;

       date                        rsVacationToDate1, rsVacationToDate2;

       RSIsEmployed                isEmployed;

       NotReturnedFromVacation     notReturnedFromVacation;

    }

    [DataMemberAttribute("EmplFrom"),

       SysOperationLabelAttribute(literalStr("@JAD370")),

       SysOperationHelpTextAttribute(literalStr("@JAD67")),

       SysOperationGroupMemberAttribute("EmplGroup"),

       SysOperationDisplayOrderAttribute('3')]

    public EmplId parmEmplIdFrom(EmplId _emplIdFrom = emplIdFrom)

    {

       emplIdFrom = _emplIdFrom;

       return emplIdFrom;

    }

    [DataMemberAttribute("EmplTo"),

       SysOperationLabelAttribute(literalStr("@JAD371")),

       SysOperationHelpTextAttribute(literalStr("@JAD68")),

       SysOperationGroupMemberAttribute("EmplGroup"),

       SysOperationDisplayOrderAttribute('4')]

    public EmplId parmEmplIdTo(EmplId _emplIdTo = emplIdTo)

    {

       emplIdTo = _emplIdTo;

       return emplIdTo;

    }

    [DataMemberAttribute("RSIsEmployed"),

       SysOperationLabelAttribute(literalStr("@JAD174")),

       SysOperationHelpTextAttribute(literalStr("@JAD174")),

       //SysOperationGroupMemberAttribute("DateToGroup"),

       SysOperationDisplayOrderAttribute('9')]

    public RSIsEmployed parmIsEmployed(RSIsEmployed _isEmployed = isEmployed)

    {

        isEmployed = _isEmployed;

       return isEmployed;

    }

    [DataMemberAttribute("RSIsEmployed"),

       SysOperationLabelAttribute(literalStr("@JAD174")),

       SysOperationHelpTextAttribute(literalStr("@JAD174")),

       //SysOperationGroupMemberAttribute("DateToGroup"),

       SysOperationDisplayOrderAttribute('9')]

    public RSIsEmployed parmIsEmployed(RSIsEmployed _isEmployed = isEmployed)

    {

        isEmployed = _isEmployed;

       return isEmployed;

    }

    [DataMemberAttribute("RsVacationFromDate1"),

       SysOperationLabelAttribute(literalStr("@JAD370")),

       SysOperationHelpTextAttribute(literalStr("@RPF8185")),

       SysOperationGroupMemberAttribute("DateFromGroup"),

       SysOperationDisplayOrderAttribute('5')]

    public TransDate parmRsVacationFromDate1(TransDate _rsVacationFromDate1 = rsVacationFromDate1)

    {

       rsVacationFromDate1 = _rsVacationFromDate1;

       return rsVacationFromDate1;

    }

    [DataMemberAttribute("RsVacationFromDate2"),

       SysOperationLabelAttribute(literalStr("@JAD371")),

       SysOperationHelpTextAttribute(literalStr("@RPF8185")),

       SysOperationGroupMemberAttribute("DateFromGroup"),

       SysOperationDisplayOrderAttribute('6')]

    public TransDate parmRsVacationFromDate2(TransDate _rsVacationFromDate2 = rsVacationFromDate2)

    {

       rsVacationFromDate2 = _rsVacationFromDate2;

       return rsVacationFromDate2;

    }

    [DataMemberAttribute("RSVacationIdFrom"),

       SysOperationLabelAttribute(literalStr("@JAD370")),

       SysOperationHelpTextAttribute(literalStr("@RPF8180")),

       SysOperationGroupMemberAttribute("VacationIdGroup"),

       SysOperationDisplayOrderAttribute('1')]

    public RSVacationIdType parmRsVacationIdFrom(RSVacationIdType _rsVacationIdFrom = rsVacationIdFrom)

    {

       rsVacationIdFrom = _rsVacationIdFrom;

       return rsVacationIdFrom;

    }

    [DataMemberAttribute("RSVacationIdTo"),

       SysOperationLabelAttribute(literalStr("@JAD371")),

       SysOperationHelpTextAttribute(literalStr("@RPF8180")),

       SysOperationGroupMemberAttribute("VacationIdGroup"),

       SysOperationDisplayOrderAttribute('2')]

    public RSVacationIdType parmRsVacationIdTo(RSVacationIdType _rsVacationIdTo = rsVacationIdTo)

    {

       rsVacationIdTo = _rsVacationIdTo;

       return rsVacationIdTo;

    }

    [DataMemberAttribute("RsVacationToDate1"),

       SysOperationLabelAttribute(literalStr("@JAD370")),

       SysOperationHelpTextAttribute(literalStr("@RPF8186")),

       SysOperationGroupMemberAttribute("DateToGroup"),

       SysOperationDisplayOrderAttribute('7')]

    public TransDate parmRsVacationToDate1(TransDate _rsVacationToDate1 = rsVacationToDate1)

    {

       rsVacationToDate1 = _rsVacationToDate1;

       return rsVacationToDate1;

    }

    [DataMemberAttribute("RsVacationToDate2"),

       SysOperationLabelAttribute(literalStr("@JAD371")),

       SysOperationHelpTextAttribute(literalStr("@RPF8186")),

       SysOperationGroupMemberAttribute("DateToGroup"),

       SysOperationDisplayOrderAttribute('8')]

    public TransDate parmRsVacationToDate2(TransDate _rsVacationToDate2 = rsVacationToDate2)

    {

       rsVacationToDate2 = _rsVacationToDate2;

       return rsVacationToDate2;

    }

  • André Arnaud de Calavon Profile Picture
    André Arnaud de Cal... 291,784 Super User 2024 Season 2 on at
    RE: 1 user record is showing by a report all others are not showing

    Hi Shabir,

    This is a custom report. Can you review what query or data provider is used to fetch the data for the report? Or can you share the technical details what had been built here?

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

Congratulations 2024 Spotlight Honorees

Kudos to all of our 2024 community stars! 🎉

Meet the Top 10 leaders for December

Congratulations to our December super stars! 🥳

Start Your Super User Journey

Join the ranks of our community heros! 🦹

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 291,784 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 230,476 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Product updates

Dynamics 365 release plans