分类 Dynamics 365 下的文章

修改 C:\AOSService\webroot 以下文件节点(如域不变仅更改1),然后重启IIS,不要编译/同步数据库,
记得备份原配置文件!!!!.

  1. web.config

    • DataAccess.Database
    • DataAccess.DbServer
    • DataAccess.SqlUser
    • DataAccess.SqlPwd
  2. wif.config

    • audienceUris.add ,值修改为 spn:环境ID;
  3. wif.serveices.config

    wsFederation节点属性

    catch(Exception::CLRError)
    {
        System.Exception    interopException = CLRInterop::getLastException();

        obj.Add("Code", 1);
        obj.Add("Message", interopException.Message.ToString());

    }
    catch
    {
        SysInfoLogEnumerator    infoLogEnum;
        str                     Message;

        infoLogEnum = SysInfoLogEnumerator::newData(infolog.copy(1, infologLine()));

        while(infoLogEnum.moveNext())
        {
            Message += infoLogEnum.currentMessage();
        }

        obj.Add("Code", 1);
        obj.Add("Message", Message);
    }

class IWS_RefreshUnrecievedInvoiceRunbase extends RunBaseBatch
{    
 #define.CurrentVersion(1)
 #LOCALMACRO.CurrentList
     listStr
 #ENDMACRO

 public container pack()
 {
     return [#CurrentVersion, #CurrentList];
 }

 public boolean unpack(container packedClass)
 {
     Version version = RunBase::getVersion(packedClass);


  switch (version)
 {
     case #CurrentVersion:
         [version, #CurrentList] = packedClass;
         break;

     default:
         return false;
 }

 return true;
 }


protected void new()
{
    super();
}

public boolean canRunInNewSession()
{
    return true;
}

static IWS_RefreshUnrecievedInvoiceRunbase construct()
{
    return new IWS_RefreshUnrecievedInvoiceRunbase();
}

static ClassDescription description()
{
    return "Update project invoice ID for negative amounts " + curExt();
}

static void main(Args args)
{
    IWS_RefreshUnrecievedInvoiceRunbase    runbase;

    runbase = IWS_RefreshUnrecievedInvoiceRunbase::construct();

    if (runbase.prompt())
    {
        runbase.runOperation();
    }
}

public void run()
{
    
}

}

private Stream buildPdf(str Id)
{

    System.IO.MemoryStream stream;

    
    Contract contract = new Contract ();
    Controller controller = new Controller ();
    SRSPrintDestinationSettings settings;
    SRSReportRunService srsReportRunService = new SrsReportRunService();
    Microsoft.Dynamics.AX.Framework.Reporting.Shared.ReportingService.ParameterValue[] parameterValueArray;

    SRSReportExecutionInfo executionInfo = new SRSReportExecutionInfo();
    Map reportParametersMap;
    SRSProxy srsProxy;
    System.Byte[] reportBytes = new System.Byte[0]();

    

    contract.parmId("Id");

    
    controller.parmReportName(ssrsReportStr(Report, Report));
    //controller.parmDialogCaption('@IWS:IWS02036');
    //controller.parmShowDialog(false);
    //controller.parmLoadFromSysLastValue(false);
    controller.parmReportContract().parmRdpContract(contract);

    settings = controller.parmReportContract().parmPrintSettings();
    settings.printMediumType(SRSPrintMediumType::File);
    settings.fileFormat(SRSReportFileFormat::PDF);

    controller.parmReportContract().parmReportServerConfig(SRSConfiguration::getDefaultServerConfiguration());
    controller.parmReportContract().parmReportExecutionInfo(executionInfo);
    srsReportRunService.getReportDataContract(controller.parmreportcontract().parmReportName());
    srsReportRunService.preRunReport(controller.parmreportcontract());
    reportParametersMap = srsReportRunService.createParamMapFromContract(controller.parmReportContract());
    parameterValueArray = SrsReportRunUtil::getParameterValueArray(reportParametersMap);
    srsProxy = SRSProxy::constructWithConfiguration(controller.parmReportContract().parmReportServerConfig());

    reportBytes = srsproxy.renderReportToByteArray(
        controller.parmreportcontract().parmreportpath(),
        parameterValueArray,
        settings.fileFormat(),
        settings.deviceinfo());

    if (reportBytes)
    {
        stream = new System.IO.MemoryStream(reportBytes);
        stream.Position = 0;
    }
    return  stream;
}