2010/01/30

[JavaScript]BookMarklet覚書

BookMarkletはJavaScriptで作られた一行のプログラムです。
javaScriptで書いたものを一行にすればとりあえず動くと思って下さい。

サンプル実行方法はブラウザのURL入力欄に張り付けとシンプルなものです。


もっとも単純なHello,world!

javascript:alert('Hello,world!'); 

上記コードをブラウザのURL入力欄に入れてみてください。
Hello, world!とポップアップウィンドウが表示されるはずです。

処理を関数化したHello,world!

javascript:(function(){function%20helloWorld(){alert('Hello,world!');}helloWorld();})(); 


先程までとまったく同じ動きをするプログラムですが、

javascript:(function(){
//スクリプト内容
})(); 
というフォーマットに従って書いています。

通常BookMarkletの変数はvar宣言してもグローバル変数になってしまうのですが、
このように無名ファンクションのインスタンス呼び出しにすることで変数をローカル扱いすることができます。


また関数を内部で定義し、後に呼び出すといったことも出来ます。

javascript:(function(){function%20msgAlert(msg){alert(msg);}
var%20txt;txt='Hello,world!';msgAlert(txt);})(); 

時々出てくる'%20'は半角スペースのURLエンコードです。
これ以外にも日本語を使用するためにはURLエンコードが必要になります。
URLエンコードはサイトを探せばなんなりと出てきますのでGoogle先生にでもお尋ねください。



2010/01/21

[DynamicsAX2009]AIFの実行環境設定

AIFの実行環境設定


AXのBasicメニューより以下を設定する。




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 任意のID
Name 任意の名前
Active チェックを入れる
Adapter Transport adapters設定で作成したAdapter
Direction Inbound(入力)
Outbound(出力)
Both(両方)
Parallel processing チェックを入れなくてもよい
Address File System Adapterの場合はサーバーのフォルダ。
BizTalk Adapter等の場合はIPアドレス等
Response channel ※上記参照


Endpoints設定

Endpoint追加
まずはNewボタンで新規設定を追加



次にGeneralタブに切り替えEndpoint IDNameを任意の名称で追加。
Outbound channel IDにChannels設定で追加したものを設定。
Local endpoint IDにLocal endpoints設定で追加したものを設定。



Constraintsタブに切り替えてNo constraintsチェックボックスを有効にしておく。


Usersタブに切り替えてNewボタンを押し、
AIFを許可するユーザーもしくはユーザーグループの設定を追加し、保存する。


例では
User type User group
Application user or group Admin
Name 自動設定


Action policy設定
次にAction policiesボタンを押し
(保存ボタンを押していないとエラーが出るので注意)

Action IDをセレクトボタンより設定する。

ここで[サービス名称.アクション名称]を選択し設定するのだが、
この一覧にサービスを表示させるためには、

Setup > Services の中でEnableチェックボックスを有効にする必要がある

選択したらStatusをEnabledにしておく。


Data policies設定

次にData policiesボタンを押し、ポップアップしたウィンドウの中のData policiesボタンを押す。
公開したいField項目にEnabledを設定する。



Endpoint有効化

Endpointウィンドウに戻り、
Overviewタブで作成したEndpointのActiveチェックボックスにチェックを入れる。


以上。


2010/01/16

[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

(global::isTypeTime が True の場合はタイムスタンプ
Int64
xsd:long
real
xsd:decimal , fractionDigits=NoOfDecimals
date
xsd:date , ISO format:YYYY-MM-DD
Enum
xsd:string , enumeration=<EnumName>,...
GUID
xsd:string , pattern='[0-9A-Fa-f]{8}...'
BLOB
xsd:string , Base64 encoded


2010/01/14

[DynamicsAX2009]DynamicsAXの用語整理

Dynamics AXのお仕事の最初の頃の、
皆がAXって何よ?って感じだったころ、
打ち合わせの会話は適度にカオスっていた。

Axapterで作るんだよね?」
「え?X++で実装するんじゃないの?」
「え?え?MorphXって名前じゃなかったっけ?」
AIFでやらなきゃいけないとか聞いたけど?」
「ところでAXって何?」

うーん、燃え上がる雰囲気が漂っていますね。
楽しそう。

で、以下整理整頓


Dynamics AX

元の製品名はAxapter。
Dynamics製品群はMicrosfot社が持っているERPとCRMの製品群のことで、
Dynamics AXはその中にある4本のERPパッケージのうちのひとつ。

ちなみに2バイト文字に対応しているのはDynamics AXとDynamics NAVだけ。

Dynamics NAV

元の製品名はNavision。
AXとNAVは両方ともERPパッケージであるが、差異は以下の通り。


AX
NAV
対象企業
50億〜500億円の企業
(中堅規模以上)
数十億〜200億円
(中小・中堅企業)
導入要件
独自要件あり
シンプルに


NAVは日本でも導入が行われていたらしいが、
AXに関してはほぼゼロ。

ただ、欧州では活発に使われている製品らしいです。
ちなみに今回のお仕事も海外への導入でした。

Axapter

昔のAXの名前。
Damgaard社が作成。
この会社が2002年MSに買収され、
製品名がAxapterからDynamics AXに変更された。

MorphX

AXにくっついてくる拡張機能実装用IDE

X++

MorphXでコーディングをする際に使われる言語。
C言語のようなC++のような。
C#のようなどっちつかずなインタプリタ言語。
C言語の遺物マクロが跋扈しているので注意が必要。
ガベコレありなので、慣れれば生産性はそこそこ。

なんでX?ってのは、元々Axapter時代に使われていた拡張用言語がXALだったからとか
(Dynamics AX 4.0 開発ガイドの前書きより)

AIF

Appication Integration Framework : アプリケーション統合フレームワーク

Dynamics AXが他のアプリケーションとやりとりをするためのサービス群
インターフェースにはXMLドキュメントを使用する。

2010/01/02

[読書メーター]2009年12月読書まとめ

読書メーターに読みたい本を登録しようとしたら
12月の本をまとめてみなってあったので、
いわれるがままに2010年初エントリー

うーん、仕事が忙しくなると
ラノベが増えるのは仕様というかなんというか。
だって読みやすいんだもん!

この調子だと一月もラノベの消費量が上がり、
読みたい本に仕事本が追加されていく傾向が強そうですね。


2009年12月の読書メーター
読んだ本の数:7冊
読んだページ数:1763ページ

■SE・エンジニアの本当にあった怖い転職話
読了日:12月28日 著者:きたみ りゅうじ
http://book.akahoshitakuya.com/b/4839924821

■ゼロの使い魔〈8〉望郷の小夜曲(セレナーデ) (MF文庫J)
読了日:12月26日 著者:ヤマグチ ノボル,兎塚 エイジ
http://book.akahoshitakuya.com/b/4840115427

■ゼロの使い魔〈6〉贖罪の炎赤石(ルビー) (MF文庫J)
読了日:12月26日 著者:ヤマグチ ノボル,兎塚 エイジ
http://book.akahoshitakuya.com/b/4840114498

■ゼロの使い魔〈4〉誓約の水精霊 (MF文庫J)
読了日:12月25日 著者:ヤマグチ ノボル,兎塚 エイジ
http://book.akahoshitakuya.com/b/4840112363

■ゼロの使い魔〈3〉始祖の祈祷書 (MF文庫J)
読了日:12月23日 著者:ヤマグチ ノボル,兎塚 エイジ
http://book.akahoshitakuya.com/b/4840111960

■ゼロの使い魔 (MF文庫J)
疲れてる時でも楽に読めた。
読了日:12月21日 著者:ヤマグチ ノボル,兎塚 エイジ
http://book.akahoshitakuya.com/cmt/4209709

■ノーライフキング (河出文庫)
読了日:12月13日 著者:いとうせいこう
http://book.akahoshitakuya.com/b/4309409180


▼読書メーター
http://book.akahoshitakuya.com/