メインコンテンツへスキップ

WebAPI、JSONを返してあげる

コメント

19件のコメント

  • 水野雅仁

    xpa4以降であれば、DataViewToJSONをつかってblob化してやればいいと思います。

    あまり環境のイメージがつかないので、細かいことはわかってませんが。

    xpaからxpaenterpriseであれば、HTTPPostでGetでBlob変数おくってやるとできたと思います。

  • nkmt

    水野様 アドバイスありがとうございます。
    DataViewToJSON関数も試した事がないので年末年始試してみたいと思います。

  • 水野雅仁

    JSON書き出しがxpaで、その後別のxpaのEnterpriseに渡すのであれば

    コールリモートでパラメータBlobいけますね。

    細かいこと考えなくても勝手にMagicがやってくれます。

  • nkmt

    水野様 ありがとうございます。
    DataViewToJSON関数を使った事がないので試してみました。
    項目更新 V_BLOB 式=DataViewToJSON(0,   '担当者コード,担当者名' ,     '担当者コード,担当者名'    )
    アクション 式=Blb2File(BLOB変数,    'C:¥WRK¥BLOBfile.txt') で
    [
    {
      "担当者コード": 1,
      "担当者名": "井上"
    },
    {
      "担当者コード": 2,
      "担当者名": "上田"
    },
    {
      "担当者コード": 3,
      "担当者名": "江藤"
    }
    ]
    といったテキストファイルを作る実験が出来ました。
    マージ要らずでJSON出力が出来るという事は理解出来ました。
    ありがとうございました。

    まださっぱりわかりませんが当方販売管理システム側で
    Magic xpa Enterprise Serverを起動させて
    Magicをお使いではない他社様のシステムからWebAPIを受けるつもりです。

    価格問合せにJSONで返したり
    お客様からの注文を受け取ったりを考えています。

  • nkmt

    水野様、そして以前別スレッドで教えてくださった皆様 ありがとうございました。
    やっと少し実験が進展しましたので報告致します。
    忘れないようドキュメントにしました。


    少し進んで良かったです。ゆくゆくは客先での稼働が目標です。

  • nkmt

    先程の投稿では記述がありませんがDataViewToJSON関数も試してみました。

    API呼び出し実験のCurlも試せていないのでやってみたいです。

    今までは全てMagicで弊社が開発、使うのはそのお客様の社員さんのみ
    という提供ばかりでしたが、今後はお客様のお客様側のシステムから
    商品○○の価格を教えて! とか、商品コード○×を10個、xxを20個見積もって!
    というリクエストに応えていければいいなと思っています。
    (ここにおいでの方々は十数年前から実現されておられると思いますけど。)

  • nkmt

    ブラウザーで実験したら以下となりました。これで合っているのかわかりませんけど。

  • nkmt

    JSON受け取り変数をBLOB型にしていますが、誤りかもしれません。

  • Pu

    こんにちはPuです。
    jsonはプレーンなtextですよ
    testで受け取ってjsonオブジェクトに変換してキーバリューで値を使用します
    xmlとxsdの関係に似ています

    でわ~でわ~

  • nkmt

    Puさん
    ありがとうございます。また試してみます。
    以下はテキストファイルを読み込んでの実験で成功しました。

    実際に目指す所は、リクエストを受け付けて、JSONで返す事。
    JSONで渡ってきたデータ?をもらって、Magic Enterprise Serverで取り込む等処理する事です。
    まだまだ自信ありませんが試してみます。


  • Pu

    こんにちはPuです。

    {
        "section1":{
            "cd":"1",
            "name": "アサヒ物流"
        },

        "section2":{
            "cd":"2",
            "name": "トレックス"
        }
    }

    JSONは入れ子も可能ですのでMagicでTEXTとして読み込んで値を取得するのは
    結構大変ですね  力技が必要かも
    オブジェクトとして扱える関数などを期待しましょう。JSONToDataView
    JSONオブジェクトならsection1のcdの値は
    ['section1']['cd']で取得できるので

    頑張って下さい。
    でわ~でわ~

     

  • nkmt

    Puさん こんにちは。私も先日知ったばかりですが・・・

  • Pu

    こんにちはPuです。
    plusだけかもしれませんね 知らんけど(^^)/
    でわ~でわ~

  • nkmt

    こんにちは。xpa4.8.1から使える関数だと思います。

  • Pu

    勉強会になりました(^^)/

     

  • 水野雅仁

    4.8.1から使える関数ですが、シングルノードしかできんはずです。

    マルチノードに対応するには、4.11a以降で対応してます。

    細かくやるとなると4.11aしか難しいですね。

  • nkmt

    水野様
    4.11がベターとの事で承知しました。

    さくらVPS for Windows(2週間お試し)上にIIS、xpa 4 Plus Enterprise Server(お試し利用)
    を稼働させ、

    Enterprise ServerがローカルPCのSQLServerを読み
    BLOB変数へ DataViewToJSON関数 を項目更新し
    アクション 式=Blob2Req(BLOB変数) を発行という風にしてみました。

    全く別のPCが別のスマホをデザリングさせ、Edgeで
    http://123.45.67.89/Magic411Scripts/Mgrqispi.dll?APPNAME=appuppu&PRGNAME=jikkennkun
    を叩くと、Edge上に JSONみたいな文字列が漢字部分は文字化けされてますが
    表示されて、明日の客先報告は進展があり良かったです。

    最終的には、
    商品コードABCDを5個
    商品コードBBDDを5個
    商品コードJKLMを3個 注文!といったJSON?を
    Enterprise Serverが受け取り、受注を登録しました!
    みたいなところまでやりたいですが
    まだEnterprise Serverが先程の注文JSON?
    を受け取る部分はまだわかりませんが試してみます。

    xpa 4 Plus Enterprise Serverがいいお値段するんだなと先程知りました。
    モバイルRIAが安価に感じるので、そのぐらいかと思ってました。

  • 水野雅仁

    簡単に説明すると、以下ですかね。

    送信元がクラサバとかの場合

    画面側は、メモリーとかで、

    ABCD 5

    BBDD 5

    JKLKM 3

     

    とする

    送信ボタンを押したら

    dataviewtoJsonで、blobにいれる

     

    callリモートで、blobをパラメータで渡す

     

    送信元がWebとかの場合(僕はやったことないので想像)は、

    APPNAME=appuppu&PRGNAME=jikkennkun&パラメータ名=blob2reqした値

     

    だと思います。

     

  • nkmt

    水野様コメントありがとうございます、

    今回はバックエンド側のみ担当する予定ですが、実験の為、呼び出し側もテスト用に作ることもあると思います。

    先ほどの文字化けの件も他のルートで解決方法を知りました。

サインインしてコメントを残してください。