2014年9月30日火曜日

【AX2012R2】同一コンピューター内でMulti AOS, Single SSRS Instanceを構成するときの注意点

前提条件
  • a single computer
  • a single SQL Server database instance is installed and configured on this computer
  • a single SSRS instance is intalled and configured on this computer
  • multiple AOSs is installed on this computer
  • musliple Dynamics AX Database is installed on this computer
  • create a report folder individually to each AOS
最初のAOSのインストールおよびAXの構成は問題は発生しないが、2つめのAOSからSSRSのレポートが表示されなくなる。

原因は、AOSのAx32Serv.exe.configに設定されているクライアント用のnet.tcpのendpointのポートが1代目のデフォルトの8201になっているためである。これをAOSをインストールしたときのポートに変更してAOSを再起動してやればよい。

以下、 Ax32Serv.exe.configの<client>タグの箇所。

<client>
      <endpoint address="net.tcp://localhost:8201/DynamicsAx/Services/AxClient" binding="netTcpBinding" bindingConfiguration="NetTcpBinding_SysWorkflowConfigurationService" contract="Microsoft.Dynamics.AX.Framework.Services.Client.AxClient.SysWorkflowConfigurationService" name="NetTcpBinding_SysWorkflowConfigurationService">
      </endpoint>
      <endpoint address="net.tcp://localhost:8201/DynamicsAx/Services/MetadataService" binding="netTcpBinding" bindingConfiguration="MetadataServiceBinding" contract="Microsoft.Dynamics.AX.Framework.Services.Metadata.Service.IAxMetadataService" name="MetadataServiceEndpoint">
      </endpoint>
      <endpoint address="net.tcp://localhost:8201/DynamicsAx/Services/QueryService" binding="netTcpBinding" bindingConfiguration="QueryServiceBinding" contract="Microsoft.Dynamics.AX.Framework.Services.QueryService.IQueryService" name="QueryServiceEndpoint">
      </endpoint>
 </client>

2015/5/18 追記
ReportServerのbinフォルダにAOSへのアクセス設定をしたaxcファイルを配置しておく必要がある。
Microsoft.Dynamics.AX.ReportConfiguration.axc

Create a new Microsoft Dynamics AX configuration [AX 2012]


2014年9月18日木曜日

【AX2012】【DIXF】DIXF Product Entityのexportにおけるproduct bug

製品エンティティ (Product Entity) を使って、AXのReleased Productをexportすると下記2項目が正しくエクスポートされない。
  • EcoResStorageDimensionGroup_Name (保管分析コードグループ)
  • EcoResTrackingDimensionGroup_Name (追跡分析コードグループ)

Released Product data
ItemId   StorageDim  TrackingDim
aaaa       sd1              td1
bbbb       sd1              td1
cccc       sd2              td1
dddd       sd2              td2
eeee       sd1              td3

Export to staging
ItemId   StorageDim  TrackingDim
aaaa       sd1              td1
bbbb                         
cccc       sd2             
dddd                         td2
eeee       sd1              td3

これはDMFEntityBase.copyTargetToStaging()のline 118で前のレコードと同じ値だと値設定の処理がスキップされるため。

2014年9月10日水曜日

【AX2012】【DIXF】DIXFのexportに関する備忘録

DIXFのexportに関するメモ。面倒なので箇条書き。

  • TargetEntityのmain data source以外は、data source name_field nameのパターンで自動マッピングされているものは、勝手にエクスポートされる。
  • Generate****() methodにmappingされている項目はこのmethodのif(!_stagingToTarget)にexportする項目を取得するロジックを書き、container resの変数にぶち込んでreturnしてやる。resに入れる順番はstaging tableのメソッドに対応するField Groupに並んでいる通り。
  • DMFProductTargetEntityにはbugsがある。InventItem****Setupとのjoinで複数レコードとれてしまうため、export to stating 時に同じItemIdで7回余計なinsertしてしまう。InventDimId = AllBlankあたりで絞ると都合がよい。
以上