我希望在收据发布时执行代码。我的代码确实有效,但仅在几天后才开始工作。没有做任何事情导致它突然停止工作。我的代码如下:
public class INReceiptEntry_Extension : PXGraphExtension<INReceiptEntry>
{
...
protected void INRegister_RowPersisted(PXCache cache, PXRowPersistedEventArgs e)
{
INRegister reg = (INRegister)e.Row;
if (reg != null)
{
if (e.TranStatus == PXTranStatus.Completed)
{
if (reg.Released == true)
{
//Code
}
}
}
}
}
我有什么遗漏或有任何理由这个代码有一天工作但下一步不再工作了吗?
答案 0 :(得分:2)
我认为您的问题是您需要将代码移至INDocumentRelease,因为这是处理所有库存交易的图表,并在完成后将已发布字段设置为true。
将您的代码添加到INRegister RowUpdated或Released Field中的INReleasePRocess图扩展中,这样您的代码也应该包含在处理批处理的事务中。不要忘记仅在此图表处理所有库存交易时检查收据。
如果查看源代码,您可以在INReleasePRocess.ReleaseDocProc的末尾看到已设置的已释放字段,更新了doc,然后事务完成。