添加注释到自定义对象

问题描述 投票:0回答:1

我已经尝试了在网络和现有代码中可以找到的所有内容,但是我无法将注释添加到注释表并附加到我的自定义表行。我试图将这个说明附加在一起。任何帮助将不胜感激。

这是注释ID def:

    #region NoteID
    public abstract class noteID : PX.Data.IBqlField { }
    protected Guid? _NoteID;
    [PXNote()]
    public virtual Guid? NoteID { get; set; }
    #endregion

以下是插入行并附加注释的代码:

        //Retrieve EDI Document remittance
        foreach (LingoSearchResults ediRemit in docRemits)
        {
            resRemit = lingo.RetrieveRemit(ediRemit.documentId, docType);
            partnerCustomerMap pcmap = lstPartnerCustomer.Find(delegate (partnerCustomerMap pcm)
                { return pcm.partner == resRemit.DataRemit.partner; });
            int newRemittanceId = 0;
            var remittance = new EDRemittance();
            //Set all field values 
            remittance.Status = "A";
            remittance.Type = resRemit.DataRemit.type;
            remittance.DocumentId = resRemit.DataRemit.documentId;
            remittance.RecordId = resRemit.DataRemit.recordId;
            remittance.TagId = resRemit.DataRemit.tagId;
            remittance.Account = resRemit.DataRemit.account;
            remittance.PartnerId = resRemit.DataRemit.partner;
            remittance.DocumentNumber = resRemit.DataRemit.documentNumber;
            remittance.SenderType = resRemit.DataRemit.senderType;
            remittance.PaymentNumber = resRemit.DataRemit.paymentNumber;
            remittance.PaymentFormat = resRemit.DataRemit.paymentFormat;
            remittance.PaymentReason = resRemit.DataRemit.paymentReason;

            strDate = resRemit.DataRemit.remitDate.ToString();
            if (DateTime.TryParseExact(strDate, "yyyyMMdd",
                System.Globalization.CultureInfo.InvariantCulture,
                System.Globalization.DateTimeStyles.None, out tempDate))
                remittance.RemitDate = tempDate;
            else
                remittance.RemitDate = DateTime.Today;

            remittance.CurrencyEntity = resRemit.DataRemit.currencyEntity;
            remittance.DepartmentNumber = resRemit.DataRemit.departmentNumber;

            if (DateTime.TryParse(strDate, out tempDate))
                remittance.ReceiveDate = tempDate;
            else
                remittance.ReceiveDate = DateTime.Today;

            remittance.HandlingCode = resRemit.DataRemit.handlingCode;
            remittance.RemitTotal = resRemit.DataRemit.remitTotal;
            remittance.DetailLineCount = resRemit.DataRemit.detailLineCount;
            remittance.BatchNumber = resRemit.DataRemit.batchNumber;
            remittance.ReceiverType = resRemit.DataRemit.receiverType;
            remittance.BatchStatus = resRemit.DataRemit.batchStatus;
            remittance.PaymentMethod = resRemit.DataRemit.paymentMethod;
            remittance.CurrencyCode = resRemit.DataRemit.currencyCode;
            remittance.PaymentStatus = resRemit.DataRemit.paymentStatus;
            remittance.Vendor = resRemit.DataRemit.vendor;
            remittance.RemitNumber = resRemit.DataRemit.remitNumber;

            //Insert new row, save, and retrieve new Id value
            remitGraph.Remittance.Insert(remittance);
            remitGraph.Persist();
            newRemittanceId = (int)remitGraph.Remittance.Current.RemittanceNbr;

            //Add notes for remittance
            noteText = "Remit level note";
            foreach (EdiNote note in resRemit.DataRemit.notes)
            {
                noteText += note.type + ": " + note.note + '\n';
            }

            if (noteText != "")
            {
                PXNoteAttribute.GetNoteID<EDRemittance.noteID>(remitGraph.Remittance.Cache, remittance);
                PXNoteAttribute.SetNote(remitGraph.Remittance.Cache, remittance, noteText);
                //remitGraph.Persist();
            }
acumatica
1个回答
2
投票

我会尝试以下更改

remittance = remitGraph.Remittance.Insert(remittance);
//this saves the object to the cache and gets things like Noteid generated. On the 
//return trip this data is available
//remitGraph.Persist();

//PXNoteAttribute.GetNoteID<EDRemittance.noteID>(remitGraph.Remittance.Cache, remittance);
PXNoteAttribute.SetNote(remitGraph.Remittance.Cache, remittance, noteText);
remittance = remitGraph.Remittance.Update(remittance)

//at the end do an Actions.PressSave();
© www.soinside.com 2019 - 2024. All rights reserved.