[DynamicsAX2009]AIFファイル上限値とその解除
デフォルト上限値の設定とエラー内容 DynamicsAXのAIFは外部ファイルとのやり取りを行うインターフェースの一つです。
外部ファイルとのやり取り時、明示されてはいませんがファイルサイズの上限値があります。
デフォルトでは10MBに設定されています。
これを超えるファイルのやり取りをAIFで行おうとすると下記エラーがイベントログに出力されます。
The adapter is unable to send the following message to Microsoft Dynamics AX:
MessageId: XXXXXXXX-1111-AAAA-9999-ZZZZZZZZZZZZ
Error: Error executing code: Insufficient memory to run script.
Error executing code: object not initialized.
(C)\Classes\processRequest
-————————————————————————-
Product Version : 5.0
Assembly Version : 5.0.0.0
Class : AppEventLog
Method : WriteLocalizedError
Subsystem : BizTalkDynamicsAdapter
-————————————————————————-
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
上限設定変更もしくは解除方法 レジストリを編集することで解除 or 上限値変更が出来ます。
regeditを起動します。
[DynamicsAX2009]DocumentServiceClassのアップデート
AIFサービスのベースになっているテーブルの定義変更をした場合に
DocumentServiceClassのアップデートを行わなければならない。
Query復元 AOTのQueryオブジェクト上で **Restore **を実行
Document Service の更新 AxClass より parm Method と set Method を消去する Ax ClassをAOT上で表示し、フィールド一覧を展開し、表示する。
変更フィールド名称が含まれている parm Method を消去する。
変更フィールド名称が含まれている set Method を消去する。
例)
Fooテーブルの Barフィールドに変更を加えたのなら、
AxFoo ClassのparmBarメソッドを消去し、
setBarメソッドを消去する。
Update document serviceを実行する Tool > Development tools > Application Integration Framework > Update document service を起動する。
Service class name で サービス名を選択する。
変更内容がフィールドの削除だった場合は
Regenerate data object classes にのみチェックを入れる。
変更内容がフィールドの変更ないしは、追加だった場合は、
Update AxBC classes にもチェックを入れる。
OKを押す。
終わった後に ServiceのRefresh、
AOTのノードでのCompile & Synchronize を実行する。
[DynamicsAX2009]AIFの実行環境設定
AIFの実行環境設定 AXのBasicメニューより以下を設定する。
AIFの実行環境設定 Local endpoints設定 Transport adapters設定 Channels設定 File System Adapter BizTalk Adapter Endpoints設定 Data policies設定 Endpoint有効化 Local endpoints設定 会社毎にLocal endpointsを設定する。
Local endpointsはI/Oを許可した会社の別名と考えれられる。
Newボタンを押し以下項目を設定する。
Company セレクトボックスより設定したい会社名
Local endpoint
任意の名前
Transport adapters設定 どのアダプターを使用するかを決定する。
通常はFile System Adapterを使用するが、
BizTalk Adapter等の特殊な設定も存在する。
Adapter class
セレクトボックスより設定したいAdapterClass名称を選択。
Name
Adapter classより自動設定される。
Active
チェックを入れる。
Direction
Adapter classより自動設定される。
Channels設定 AIFで使用するXMLファイルのI/Oの場所設定を行う。
File System Adapter Outboundを作成してから、Inbound作成すること
そうしなければResponse channelの設定で少しつまる。
Response channelの設定は、
Inboundの場合は対応するOutboundを、
Outboundの場合はブランク、
Bothの場合は自信の設定を入力する。
BizTalk Adapter DirectionがBothになることと、
Response channelが自分自身になること、
それからConfigureボタンでサーバー名称の設定をすることを忘れない。
※他環境から設定をインポートする際にここの変更を忘れることが多い。
Channel ID
[DynamicsAX2009]X++でよく使う型とそのスコープのまとめ
X++でよく使う型とそのスコープのまとめ 時々質問が飛んでくるので、メモ。
標準的な型 型
スコープ
Deault
int
-2,147,483,648 ~ 2,147,483,647
0
int64
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,808
0
real
]-(10)127~(10)127 [, 16桁の精度を守りつつ。
0.00
String
Unlimited
""
TimeOfDay
0~86400(32bit)
0
date
1/1/1900 ~ 31/12/2154
1/1/1900
utcdatetime
1900-01-01T00:00:00 ~ 2154-12-31T23:59:59
この値の最小と最大がtimeOfDay型とdate型でも最小最大である。
1900-01-01T00:00:00
realはBCD-encoding: 64 bitとあるので (※BCD=binary coded decimals=二進化十進数)
16桁の精度を持ったDecimal型である。
Boolean 表示
Bool値
1
True
0
False
true
True
false
False
44
True
Default : false
X++データ型とXSD型のマッピング
ついでにAIF使ってたらよく出てくるのでXSD型とのマッピングも書いておく。
X++データ型
XSD型
String
xsd:string,maxLength=StringSize
Integer
xsd:time , ISO format:HH:MM:SS