私は、GP統合を行うためにeConnectという一連のストアドプロシージャを使用します。最も洗練されたソリューションではないかもしれませんが、それはかなりうまく動作します。 eConnectはマイクロソフトによってもかなりよく文書化されています。
この種の統合を使用する場合は、敏捷性アプリケーションに精通していることをお勧めします。敏捷性アプリケーションを学ぶことは、オブジェクトとテーブルのマッピングに多くの助けとなり、それは顧客ソースから無料でダウンロードする必要があります。ここで
顧客レコードを作成するにはeコネクトストアドプロシージャの例です。それだけで(この例ではPHP ADODBを使用して)、次のような何かを実行するには
$sql = "declare @p115 int
set @p115=0
declare @p116 varchar(255)
set @p116=''
exec dbo.taUpdateCreateCustomerRcd
@I_vCUSTNMBR = '123456',
@I_vCUSTNAME = 'Company Name',
@O_iErrorState = @p115 OUTPUT,
@oErrString = @p116 OUTPUT
select @p115, @p116";
を:
gp_execute_sp($sql);
function gp_execute_sp($sql, $transactions = true) {
global $DBGP;
if($transactions)
$DBGP->StartTrans();
$rs = $DBGP->Execute($sql);
if(is_object($rs) && !$rs->EOF) {
if($rs->fields['computed'] != 0) {
if($transactions)
$DBGP->FailTrans();
throw new Exception(get_error_desc($rs->fields['computed']));
}
} elseif(!is_object($rs)) {
if($transactions)
$DBGP->FailTrans();
throw new Exception("Database Connection Error.");
} else {
if($transactions)
$DBGP->FailTrans();
throw new Exception("Stored proceedure did not return a result.");
}
if($transactions)
$DBGP->CompleteTrans();
}
function get_error_desc($value) {
global $DBGP;
if(is_numeric($value)) {
$result = "No Error Available";
$sql = "SELECT ErrorDesc FROM DYNAMICS..taErrorCode WHERE ErrorCode=?";
$rs = $DBGP->execute($sql, array($value));
if(!$rs->EOF) {
$result = $rs->fields['ErrorDesc'];
}
} else {
$result = $value;
}
return $result;
}
PHPはウェブサイトと非常に簡単に(しかし面倒なことに)対話できます。問題は、それがGPでそうすることがあなたの時間価値がある場合です。 –
@Marc - 退屈で面倒であるという質問があると思います:)少し面倒であれば、それで大丈夫かもしれません。 GPウェブサービスを使っている大部分の人は.netを使っていると思いますので、PHPを使ってPHPを使う方法についてのドキュメントは見つかりません。マイクロソフト社のドキュメントはすべてネットのように見えるので、あまり役に立ちません。私たちがダイビングする前に、私はちょうど水が幾分泳ぐことができることを知りたいと思います。 –
どこかのAPIライブラリが見つからない限り、実際のブラウザに座って誰かをシミュレートしたり、データを入力/変更したりするなど、PHPでブラウザを再作成しようとしています。 –