web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Microsoft Dynamics AX (Archived)

Buffer for call of SRSTmpTblMarshaller::deleteTmpTblData is not specified

(0) ShareShare
ReportReport
Posted on by

Hi everyone,


I'm trying to make a customization on Promissory Note for Spain. My intention is to modify Report BankPromissoryNote_ESReport which uses as Data Provider the BankPromissoryNoteDP_ES. My customization consists on show the list of invoices contained on the PromissoryNote printed at the bottom of the report. The problem is that the data provider exteds from SRSTmpTblMarshallerContract class, and it seems to admit only one temporary table. I had created a new temp table whith the info I need to show, but in spite of having stored my table in the controller class:

public RecId storeTmpTable_2()
{
    return SRSTmpTblMarshaller::SendTmpTblToDataProvider(paymInfoPromissoryNote);
}


and called it from the fetch method:

public RecId fetch()
{
    RecId                       tmpTableDataRecId;
    SrsReportRunPermission      permission;

    while select tmpBankPromissoryNotePrintout
    {
        this.insertIntoTempTable();
    }

    //Storing the temp table data using SRSTmpTblMarshaller
    permission = new SrsReportRunPermission();
    permission.assert();
    tmpTableDataRecId = this.storeTmpTable();
    this.storeTmpTable_2();
    CodeAccessPermission::revertAssert();

    delete_from bankPromissoryNoteTmp_ES;

    return tmpTableDataRecId;
}

When the processReport tries to delete it,

[SysEntryPointAttribute]
public void processReport()
{
    SrsReportRunPermission      permission;
    SRSTmpTblMarshallerContract contract =  this.parmDataContract() as SRSTmpTblMarshallerContract;
    permission = new SRSReportRunPermission();
    permission.assert();
    breakpoint;
    //Temp Table Object that was returned from SRSDataCarrier
    //bankPromissoryNoteTmp_ES = SRSTmpTblMarshaller::getTmpTbl(contract.parmTmpTableDataRecId());
    bankPromissoryNoteTmp_ES = SRSTmpTblMarshaller::getTmpTbl(bankPromissoryNoteTmp_ES.RecId);
    paymInfoPromissoryNote = SRSTmpTblMarshaller::getTmpTbl(bankPromissoryNoteTmp_ES.PaymInfoPromissoryNoteRefRecId);
    //SRSTmpTblMarshaller::deleteTmpTblData(contract.parmTmpTableDataRecId());
    SRSTmpTblMarshaller::deleteTmpTblData(bankPromissoryNoteTmp_ES.RecId);
    SRSTmpTblMarshaller::deleteTmpTblData(paymInfoPromissoryNote.RecId);
    CodeAccessPermission::revertAssert();
}


The system returns me the error:

No se ha especificado el almacenaje para la llamada de SRSTmpTblMarshaller::deleteTmpTblData.

(In English, in the subject of the post)

So, does somebody know how to use two temporary tables with this kind of Data Provider? Or, at least, does somebody know how to fix my error?

Thank you in advance.

*This post is locked for comments

I have the same question (0)
  • Suggested answer
    Bashir Ahmad Profile Picture
    5,248 on at

    A temporary table exists only while a record buffer variable that references the table exists. No memory is allocated to the temporary table until the first record is inserted. At that point, memory is allocated. Disk space is allocated, if it is needed. As soon as the record buffer goes out of scope, the memory is de-allocated and the disk file is deleted.

    A temporary table resides on the tier where the first record is inserted. If a record is inserted on the server tier, memory for the temporary table is allocated on the server tier. If the temporary table exceeds 128 KB, a disk file is created on the server.

    Seems you are calling delete from out of the scope

    Please verify and let us know

  • Community Member Profile Picture
    on at

    Hi Bashir, thank you for your answer.

    That's not the problem. I think the problem is that I can't have two temporary tables for only one Data Provider when I'm using SRSTmpTblMarshaller.


    I had solved this modifying the original table adding the new fields I need, and modifying as the Data Provider for filling it, as the Report itself for filtering data.


    Anyway, I will be pleased if someone knows how to change it.

    Thank to you all.


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

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > 🔒一 Microsoft Dynamics AX (Archived)

#1
Martin Dráb Profile Picture

Martin Dráb 4 Most Valuable Professional

#1
Priya_K Profile Picture

Priya_K 4

#3
MyDynamicsNAV Profile Picture

MyDynamicsNAV 2

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans