如何在操作的 "Files" 选项卡中附加 XML 文件

how to attach an XML file in the "Files" tab of an action

我有一个大问题,你可以通过一个动作附加XML,当你导入XML并将它保存在"Files"选项卡中时,问题是。能贴吗。

这是一个示例图片: 缺少的是,当我上传

时,我会自动附加到 "Files" 选项卡中

这是我的代码,我附上了 XML

  public PXAction<ARInvoice> CargarXML;
    [PXUIField(DisplayName = "Carga de código hash")]
    [PXButton()]
    public virtual void cargarXML()
    {
        var Result = NewFilePanel.AskExt(true);
        if (Result == WebDialogResult.OK)
        {
            PX.SM.FileInfo fileInfo = PX.Common.PXContext.SessionTyped<PXSessionStatePXData>().FileInfo["CargaSessionKey"];
            string result = System.Text.Encoding.UTF8.GetString(fileInfo.BinData);

            ARInvoice ari = Base.Document.Current;
            xtFECodHashEntry graph2 = PXGraph.CreateInstance<xtFECodHashEntry>();
            var pchExt = ari.GetExtension<ARRegisterExt>();

            string Valor = "";
            XmlDocument xm = new XmlDocument();
            xm.LoadXml(result);

            XmlNodeList elemList = xm.GetElementsByTagName("ds:DigestValue");
            for (int i = 0; i < elemList.Count;)
            {
                Valor = (elemList[i].InnerXml);
                break;
            }
            PXLongOperation.StartOperation(Base, delegate ()
            {
                xtFECodHash dac = new xtFECodHash();
                dac.RefNbr = ari.RefNbr;
                dac.DocType = ari.DocType;
                dac.Nrocomprobante = ari.InvoiceNbr;
                dac.Hash = Valor;
                dac.Tipo = pchExt.UsrTDocSunat;
                graph2.xtFECodHashs.Insert(dac);
                graph2.Actions.PressSave();
            });
        }
    }

如果您有 FileInfo 对象,我使用了类似这样的对象:

protected virtual void SaveFile(FileInfo fileInfo, PXCache cache, object row)
{
    if (fileInfo == null)
    {
        return;
    }

    var fileGraph = PXGraph.CreateInstance<UploadFileMaintenance>();

    if (!fileGraph.SaveFile(fileInfo, FileExistsAction.CreateVersion))
    {
        return;
    }

    if (!fileInfo.UID.HasValue)
    {
        return;
    }

    PXNoteAttribute.SetFileNotes(cache, row, fileInfo.UID.Value);
}

因此,在您的示例中,您可以使用以下命令调用此方法,如上所示:

SaveFile(fileInfo, Base.Document.Cache, Base.Document.Current);