2010/05/07

[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 上限値変更が出来ます。

  1. regeditを起動します。

  2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dynamics\5.0\Configuration\Original (installed configuration)
    を開き以下のように編集。

    Value name
    maxbuffersize
    Value type
    REG_SZ
    Value
    上限値(MB) or 0(上限値なし)

  3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dynamics Server\5.0\01\Original (installed configuration)
    を開き以下のように編集。

    Value name
    maxbuffersize
    Value type
    REG_SZ
    Value
    上限値(MB) or 0(上限値なし)

※設定名でOriginal (installed configuration)設定を使用している時。

注意事項

上記説明ではファイルサイズとしたが上限値はファイルを展開した際のメモリの確保量になる。
なので10MB丁度のファイルをAIFで取り扱ったとしてもメモリ展開時に10MBを超えてしまうようなXML出会った場合は
エラーが出力される。

また、上限値なしは基本的にはお勧めしない(らしい)。
開発筋の情報では1ファイルの上限値は50,000行以下を推奨し、
100MB以上のファイルサイズのやりとりは想定していないそうだ。


参考URL:

2010/04/14

[日記]Agile Japan 2010に行って来ました


4月9日(金)と4月10日(土)に行われたAgile Japan 2010に
会社の上司さんと土曜日だけ参加してきました。

会場の様子

会場はIBM本社ビルのセミナールーム。
メイン会場の収容人数は300人ぐらいでしょうか?
大きいなぁ

注目すべきはプレゼン資料が映し出されるスクリーンの横に
Agile Japan 2010のハッシュタグ(#aj10)に発言したTwitterの内容がリアルタイム表示されること。
現在目の前で行われているセッションに対する
忌憚のない参加者の意見が見えるのが面白い。


セッション

参加したセッションは

  • アジャイルの現状と未来、次に来るもの。〜リーン開発への展望〜
  • 非ウォーターフォール型開発に関する調査結果と課題
  • Agile on プロジェクトファシリテーションでイテレーション体験ワークショップ
  • 成長する組織へ導くコミュニケーション変革
  • Agile Japan 2010 プログラム:クロージングキーノート

参加したセッション毎の詳細レポートは別途書くつもりですが、
多少時間がかかりそうなので、とりあえず記事の新鮮味が落ちないうちに、
全体を通したざくっと感想を書いておきます。

アジャイルの現状と未来、次に来るもの。〜リーン開発への展望〜

Alan Shalloway 氏によるセッション。

Agileが持っている現状の問題点。
そしてこれからやってくる問題点。
その解決策としてのリーン開発。

リーン開発は、トヨタ生産方式を一般化した開発方式。
要点は「無駄を省く」。
Agile界隈ではポッペンディーク夫妻が書いた本を通して広まりました。

チーム内でのAgileに留まらない、
会社経営にまで広がる話、
本を読むだけじゃわからない「なるほど」と何度も頷く話。
メインセッションだけあって、一番得るものが多い時間でした。

会社の経営に携わる上司さんとしては、
色々思うところがあったようで、

図を書きながら、色々と我が社の問題点と
果たしてそれの改善策として本当にAgileが有効なのか?

と静かに討論開始。

しばらくして、司会者に静かにしてくれと注意された。
申し訳ない。

非ウォーターフォール型開発に関する調査結果と課題

IPAによる非ウォターフォール型開発を行っているプロジェクト関する調査結果発表。
IPAという公的機関がそういったアプローチをしていることに関心。

内容はというと・・・
どっかネットに落ちてる100P近い資料を読んでみよう。(資料リンク
多少お役所的な発表であったことはお役所なんだから仕方ない。

Agile on プロジェクトファシリテーションでイテレーション体験ワークショップ

PFを使った実際のAgile開発体験。

これは非常に楽しいワークショップだったので、
前川氏のワークショップを見かけたら是非参加するといい、絶対楽しい。

ワークショップの内容をかいつまんで書くと、
レゴブロックを使った仮想プロジェクトをAgile型開発で行う。
漠然とした要件が渡され、それをいかにリリースに持っていくか。
時間というリソースをいかに無駄無く使っていくかを体験。

成長する組織へ導くコミュニケーション変革

Scrum(Agileの一つの手法)導入済みの二社から
経営者とチームリーダーを招いた座談会。

内容は、何故Scrumを導入したのか?
導入前後で会社の経営は?チームの雰囲気は?
良くなった?悪くなった? ...etc

良い話も悪い話も両方ありましたが、
日本でAgileを導入した現場の生の声を聞けたことは
大変な収穫がありました。

経営者の方の一人が、
Scrum導入以前と以後で会社はどう変わったか?に対して、

「昔は経営者サイドは開発者サイドを馬鹿にしていた、使えないやつらだと思っていた。
しかし、Scrum適用後、経営者サイドの誰に聞いても自社の売りは開発チームだと答えるようになった。」

この発言に勇気をもらいました。


クロージングキーノート

・・・あまり内容覚えてません。

Agile Japan 2010〆

最後はボランティアスタッフが前に出てきて、
拍手して〆。

充実した一日でした、家に帰ったらバタンQ。



2010/04/05

[読書メーター]2010年 3月読書まとめ

さて、3月の読書まとめです。

冊数は10冊。
ちょいと勢いが落ちた気がしますが、15冊とかゼロ使の読みやすさが成せた技です。
現在読んでいる狼と香辛料シリーズは読み応えがあるので、
前程の速度が出なくなっただけですね。

傷物語は化物語が中々借りれないので、
仕方なしに図書館で借り読み。
暇つぶし程度で借りましたが、どっぷりはまりました。
これは化物語が楽しみだ。

横山光輝本はアニメのジャイアントロボを見た勢いで借りました。
この人ものすごく多作な人だったのだね。

狼と香辛料シリーズはラノベっぽい面白さは少ないですが、
読み物としてはかなり上質ですね。
星界の紋章シリーズのような初期ラノベのよさがあります。

ナウシカは勢いで読みました。
やはり凄い話ではあるがいかんせん上下巻が大きい!重い!
現在嫁さんが文句ぶーぶーいいながら読書中。

3月の読書メーター
読んだ本の数:10冊
読んだページ数:3539ページ

3月の読書メーター
読んだ本の数:10冊
読んだページ数:3539ページ

風の谷のナウシカ (下巻)風の谷のナウシカ (下巻)
下巻一気に読んでしまった。生死、清濁、正邪、虚実…色々なものがない混ぜになった物語。どれもが誰もが全部混ざり合って、深夜まで続けて読んで、結構泣いた。
読了日:03月29日 著者:宮崎 駿
風の谷のナウシカ (上巻)風の谷のナウシカ (上巻)
やはり映画版よりも話の規模がでかい、上巻でまかれた物語の種が後半でどのように芽吹くのか楽しみ。(後この本は、物理的にでかすぎる)
読了日:03月27日 著者:宮崎 駿
狼と香辛料〈5〉 (電撃文庫)狼と香辛料〈5〉 (電撃文庫)
幸せであり続けることは無理かもしれないが、そのための努力をし続けることは出来る。そんなテーマのファンタジー
読了日:03月27日 著者:支倉 凍砂
ダーリンの頭ン中 英語と語学ダーリンの頭ン中 英語と語学
読了日:03月19日 著者:小栗 左多里,トニー・ラズロ
狼と香辛料〈4〉 (電撃文庫)狼と香辛料〈4〉 (電撃文庫)
読了日:03月16日 著者:支倉 凍砂
狼と香辛料〈3〉 (電撃文庫)狼と香辛料〈3〉 (電撃文庫)
読了日:03月13日 著者:支倉 凍砂
狼と香辛料〈2〉 (電撃文庫)狼と香辛料〈2〉 (電撃文庫)
キャラ寄りラノベかと思いきやしっかり小説してるなぁ。ノーラの今後に幸あれ
読了日:03月12日 著者:支倉 凍砂
狼と香辛料 (電撃文庫)狼と香辛料 (電撃文庫)
ラノベにしては読み応えがある作品。中々に読ませてくれる、続編は読まなきゃだわ
読了日:03月09日 著者:支倉 凍砂
横山光輝マンガ大全―子どもの昭和史 (別冊太陽)横山光輝マンガ大全―子どもの昭和史 (別冊太陽)
横山光輝って色々書いてたんだなぁ
読了日:03月07日 著者:
傷物語 (講談社BOX)傷物語 (講談社BOX)
初西尾維新。この人の文章は言葉の選び方がいいのか、サクサクと読めますね。小説の導入部は大抵はだるいものですが、するする入っていけましたし、起承転結の転の衝撃もよい感じ(むしゃむしゃ)、結の読後感もよいものです。化物語も読んでみようか。
読了日:03月02日 著者:西尾 維新

読書メーター

2010/03/23

[BizTalk2009]BtsTaskによるバッチ作成

btstaskはBizTalkアプリケーションのインストール等をコマンドライン上で行えるコマンドラインツールです。
以下に自分の使用例を書いときます。




バインド設定を省いたアプリケーションのmsiファイルを作成する方法

  1. アプリケーションネーム(ここではBizApp1とする)を指定し、リソースXMLファイルを作成する。
    btstask listapp -a:BizApp1 -r:BizApp1_Resource.xml


  2. BizApp1_Resource.xml 修正する。

    <Resources>タグ以下の
    <Resource Type="System.BizTalk:BizTalkBinding"
    で始まるタグを削除する。

  3. エクスポート実行
    btstask ExportApp -a:BizApp1 -p:<MsiFileName> -r:BizApp1_Resource.xml


  4. バインドファイルもエクスポート実行
    btstask ExportBindings -Destination:BindFile.xml -ApplicationName:BizApp1


バッチ例

msiファイルとバインド設定ファイルをエクスポートする

@setlocal
@echo off

echo ##################################
echo %DATE% %TIME% Running export.bat
echo ##################################

REM !!!!You edit this block!!!!
call :SUB BizApp1
call :SUB BizApp2
REM !!!!You edit this block!!!!

@endlocal
goto :EOF

:SUB

set APP_NAME=%1
set MSI_NAME="%~dp0%1.msi"
set XML_NAME="%~dp0%1.BindingInfo.xml"
set RES_NAME="%~dp0%1_Resource.xml"


REM #### Resource.xmlを指定して、エクスポートします。
btstask ExportApp -a:%APP_NAME% -p:%MSI_NAME% -r:%RES_NAME%

REM #### バインド設定xmlをエクスポートします。
btstask ExportBindings -Destination:%XML_NAME% -ApplicationName:%APP_NAME%


msiファイルからBizTalkアプリをインストールする

@setlocal
@echo off

echo ##################################
echo %DATE% %TIME% Running create.bat
echo ##################################

REM !!!!You edit here!!!!
call :SUB BizApp1
call :SUB BizApp2
REM !!!!You edit here!!!!

@endlocal
goto :EOF

:SUB
set MSI_NAME="%~dp0%1.msi"
set APP_NAME=%1

echo ##################################
echo %MSI_NAME% %APP_NAME%
echo ##################################

REM #### msiファイルをローカルに展開する。
msiexec /i %MSI_NAME% TARGETDIR="%cd%" /qn

REM #### BizTalk アプリを作る
BTSTask AddApp -ApplicationName:%APP_NAME%

REM #### BizTalk アプリの設定をインポートする
BTSTask ImportApp -Package:%MSI_NAME% -ApplicationName:%APP_NAME% -o


バインド設定をインポートする

@echo off
@setlocal

echo ##################################
echo %DATE% %TIME% Running importBindings.bat
echo ##################################

REM !!!!You edit here!!!!
call :SUB BizApp1
call :SUB BizApp2
REM !!!!You edit here!!!!

@endlocal
goto :EOF

:SUB
set XML_NAME="%~dp0%1.BindingInfo.xml"
set APP_NAME=%1
btstask ImportBindings -Source:%XML_NAME% -ApplicationName:%APP_NAME%


msiファイルを使った対象BizTalkアプリを削除する

@echo off
@setlocal

echo ##################################
echo %DATE% %TIME% Running remove.bat
echo ##################################

REM !!!!You edit here!!!!
call :SUB BizApp1
call :SUB BizApp2
REM !!!!You edit here!!!!

@endlocal
goto :EOF

:SUB
set APP_NAME=%1
set MSI_NAME="%~dp0%1.msi"

REM #### アプリケーションを削除します。
BTSTask RemoveApp -ApplicationName:%APP_NAME%
BTSTask UninstallApp -ApplicationName:%APP_NAME%

REM #### msiファイルを削除します
msiexec /x %MSI_NAME% /qb

2010/03/19

[DynamicsAX2009]DocumentServiceClassのアップデート

AIFサービスのベースになっているテーブルの定義変更をした場合に
DocumentServiceClassのアップデートを行わなければならない。


Query復元

AOTのQueryオブジェクト上で Restore を実行

Document Service の更新

Ax<Table>Class より parm Method と set Method を消去する

  1. Ax<Table> ClassをAOT上で表示し、フィールド一覧を展開し、表示する。

  2. 変更フィールド名称が含まれている parm Method を消去する。

  3. 変更フィールド名称が含まれている set Method を消去する。

    例)
    Fooテーブルの Barフィールドに変更を加えたのなら、
    AxFoo ClassのparmBarメソッドを消去し、
    setBarメソッドを消去する。

Update document serviceを実行する

  1. Tool > Development tools > Application Integration Framework > Update document service を起動する。



  2. Service class name で サービス名を選択する。

  3. 変更内容がフィールドの削除だった場合は
    Regenerate data object classes にのみチェックを入れる。

    変更内容がフィールドの変更ないしは、追加だった場合は、
    Update AxBC classes にもチェックを入れる。

  4. OKを押す。

  5. 終わった後に ServiceのRefresh、
    AOTのノードでのCompile & Synchronize を実行する。

参考URL
http://msdn.microsoft.com/en-us/library/ee330229.aspx