Loftware NiceLabel ラベル サービス ソリューションを使用したラベルの印刷

この記事では、Loftware NiceLabel ソリューションを使ってMicrosoft Dynamics 365 Supply Chain Management でラベルを設定し、印刷する方法を説明します。 これは、Supply Chain Management の外部サービスラベル印刷機能の使い方を示す一例です。 この機能の仕組みに関する一般的な情報については、外部サービスを使用してラベルを印刷する を参照してください。

Loftware NiceLabel を使用すると、標準化された準拠バーコード ラベルを作成、管理、印刷できます。 また、サポートされているクラウド接続プリンターやさまざまな従来のオンプレミス プリンターにラベルを印刷することもできます。 NiceLabel には、クラウド ソリューション (NiceLabel Cloud) やオンプレミス製品のいくつかのバージョンなど、外部のラベル印刷サービスと併用できる製品がいくつかあります。 この記事では、Supply Chain Management を NiceLabel Cloud ソリューションと統合する方法に焦点を当てます。

Loftware NiceLabel Cloud の詳細については、Loftware NiceLabel Cloud & ラベル管理システム を参照してください。

重要

外部サービスとの統合を有効にすることにより、お客様は、外部サービスのデータ取り扱い、プライバシー、およびコンプライアンスの基準が、Dynamics 365 Supply Chain Management が提供する基準と同じではない可能性があることを理解することを確約するものとします。 外部サービスが組織のセキュリティとプライバシーの要件 (個人データの取り扱いや地理的居住性の要件など) を満たしているかどうかを確認するには、外部サービスのドキュメントと規約を参照してください。 Microsoft にとってお客様のプライバシーは重要です。 詳細については、Microsoft のプライバシーに関する声明 をお読みください。

NiceLabel Cloud は、他のクラウド アプリケーションに対して 2 つの統合アプローチをサポートしています。

  • クラウド印刷API :Label Cloudはラベルを生成し、印刷ジョブをプリンタに送信します。 このプリンタは、いわゆる クラウド プリンター (ローカルにインストールされたソフトウェアやプリンタ ドライバを使用せずに、NiceLabel Cloud インスタンスに直接接続されるプリンタ) または任意のプリンタのいずれかになります。これは、プリント ゲートウェイ コンポーネントがインストールされているワークステーションに接続されています。 サポートされているクラウド プリンターの現在のリストについては、 Loftware Web サイト を参照してください。
  • [クラウド トリガーAPI :Label Cloudは、ラベルを生成してプリンタに送信する、 各プリンタに Windows プリンタ ドライバをインストールする必要があります。

ローカル ソフトウェアのフットプリントを望まない場合は、クラウド プリント API とサポートされているプリンターを併用することをお勧めします。 そうでない場合は、Cloud Trigger API を使用することをお勧めします。 ただし、両方のオプションが利用可能です。

各統合オプションの長所と短所は次のとおりです:

  • クラウド トリガー API を使用すると、すぐに使えるクラウド統合パックを使用したり、印刷要求の処理を完全にカスタマイズしたりできます。
  • クラウド プリントは同期 API です。 つまり、サーバーは印刷エンジンがラベルを印刷するのを待機します。 Cloud Print API は印刷ジョブの結果を報告しますが、Supply Chain Management はその結果を使用しません。 したがって、ラベルを印刷する際に少し長く待つか、外部サービスの操作にタイムアウトを設定する必要があります。 タイムアウトが発生した場合、クラウド プリント API は印刷を継続しますが、リクエストはタイムアウトとして記録されます。
  • NiceLabel Automation Service を実行するサーバー上で構成されているプリンターの名前を使用できるため、Cloud Trigger API ではオンプレミスのプリンターの名前付けが簡単になります。 クラウド プリント API を使用するには、印刷先のワークステーションを示すワークステーション ID を指定する必要があります。
  • Cloud Trigger API の場合、NiceLabel Automation Service の複数のインスタンスをローカル ネットワークにインストールして、負荷分散と高可用性を実現できます。 前述のとおり、印刷要求をどのワークステーションにルーティングするかを指定する必要があります。 そのワークステーションが利用できない場合、ラベルは印刷されません。 逆に、複数の NiceLabel Automation Service インスタンスは、同じクラウド トリガーへのリクエストを処理できます。
  • クラウド プリント API のインストール フットプリントは小さくなります。

重要

この記事の情報は、一般的な情報提供のみを目的としています。 情報を最新かつ正確に保つよう努めますが、Microsoft は、NiceLabel 製品に関する正確性、信頼性、完全性について、明示的か黙示的かを問わず、いかなる種類の表明または保証も行いません。 Loftware は、NiceLabel 製品の機能を予告なく変更することがあります。 NiceLabel 製品に関して問題が発生した場合、またはその他の質問がある場合は、Loftware に直接お問い合わせください。

前提条件

この記事で説明されている機能を使用するには、Supply Chain Management バージョン 10.0.34 以降を実行している必要があります。

NiceLabel Cloud 統合の準備をする

Cloud Print API または Cloud Trigger API を使用して NiceLabel Cloud にアクセスするには、事前に NiceLabel 開発者ポータルに登録し、開発者ポータルのサブスクリプションを NiceLabel Cloud インスタンスにリンクする必要があります。 手順については、NiceLabel ヘルプセンターの クラウド統合 を参照してください。

重要

NiceLabel 開発者ポータルに登録する際は、必ずプライマリまたはセカンダリ サブスクリプション キーのコピーを作成してください。 (既定では主キーを使用します) このキーは、後で外部サービス定義を構成するために必要になります。

モノのインターネット (IoT) に対応したプリンターを使用する場合は、プリンターを NiceLabel Cloud インスタンスに接続する必要があります。 手順については、NiceLabel ヘルプセンターの ククラウド プリンター を参照してください。

クラウドプリント API を使用してクラウドプリンターに印刷するための Supply Chain Management の構成

Cloud Print API を使用すると、Supply Chain Management から送信された変数に基づいて NiceLabel Cloud が生成したラベルを印刷できます。 また、既存のラベル レイアウトや小型荷物配送 (SPS) 統合用に配送業者によって提供される配送ラベルなど、Zebra プログラミング言語 (ZPL) ラベルを送信することもできます。

このセクションでは、2 つの操作 (変数ベースのレイアウトの印刷用と ZPL ベースのラベル レイアウトの印刷用) を含む外部サービス定義をセットアップする方法について説明します。 両方のタイプのレイアウトを使用する必要がない場合は、ここで説明する 2 つの操作のうち 1 つだけを設定できます。

クラウド プリント API を使用して印刷用の外部サービス定義をセットアップする

外部サービス定義を設定するには、次の手順に従います。

  1. 倉庫管理 > 設定 > 外部サービス > 外部サービス定義 に移動します。

  2. アクション ペインで、新規 を選択して外部サービス定義を作成します。

  3. 新しいサービス定義の以下のフィールドを設定します:

    • [外部サービス定義 ] : サービス定義の名前を入力します (たとえば、NLPrint
    • [ /&: サービス定義の簡単な説明を入力します ( Labelクラウド印刷APIなど)。
  4. アクション ウィンドウで、保存を選択します。

  5. 外部サービス操作 クイック タブで、ツールバーの 操作の編集 を選択します。

  6. アクション ウィンドウの 外部サービス オペレーション ページで、新規 を選択して、変数を印刷するためのオペレーションを追加します。 次に、新しいレコードに対して次の手順に従います。 変数ベースのレイアウトを使用しない場合は、ステップ 8 に進んでください。

    • ヘッダーで、次のフィールドを設定します。

      • [外部サービス ] : 操作の名前を入力します ( Print)。
      • [ /&] : 操作の簡単な説明を入力します ( クラウド プリンタに印刷します
    • 一般クイック タブで、次のフィールドを設定します。

      • [HTTPメソッド ] : 選択 転記
      • [タイムアウト ] : 操作のタイムアウトの期間をミリ秒 (ミリ秒) で入力します ( 500、)。
      • [要求の本文の ] 選択 承認
      • [相対URL ] : /印刷/v2/印刷

      ノート

      クラウド プリントは同期 API です。 したがって、ラベルが印刷されるまで待機し、印刷が成功したかどうかについて直ちにフィードバックを提供します。 ただし、このプロセスには数秒かかる場合があるため、システムはモバイル デバイス ユーザーに悪いユーザー エクスペリエンスを提供する可能性があります。 さらに、結果は現在使用されていません。 したがって、タイムアウト期間を 500 ミリ秒に設定することをお勧めします。 このタイムアウトが経過すると Supply Chain Management は待機を停止しますが、印刷はバックグラウンドで続行されます。

    • 要求 HTTP ヘッダー タブで、新しい行を追加してそれに対して次のフィールドを設定します:

      • [ ] :Ocp-Apim -定期 キーを入力します
      • [値 ] : $auth.。 ここに表示されているとおりに正確に値を入力してください。
    • 要求本文 クイック タブで、以下のフィールドを設定します:

      • [コンテンツ タイプ ] : 適用/

      • [ ] : 要求本文の内容を入力します。 次に例を示します。

        {
            "deviceType": "CloudPrinter",
            "deviceId": {
                "printerName": "$label.printer$",
                "workstation": null
            },
            $label.body$
        }
        
  7. アクション ウィンドウで、保存を選択します。

  8. アクション ウィンドウで、新規 を選択して、操作の簡単な説明を入力してください。 次に、新しいレコードに対して次の手順に従います。 ZPL ベースのレイアウトを使用しない場合は、ステップ 10 に進んでください。

    • ヘッダーで、次のフィールドを設定します。

      • [外部サービス ] : 操作の名前を入力します ( SendData、)。
      • [ /&] : 操作の簡単な説明を入力します ( Send ZPLからクラウド プリンタなど)。
    • 一般クイック タブで、次のフィールドを設定します。

      • [HTTPメソッド ] : 選択 転記
      • [タイムアウト ] : 操作のタイムアウトの期間をミリ秒 (ミリ秒) で入力します ( 500、)。
      • [要求の本文の ] 選択 承認
      • [相対URL ] /印刷/v2/SendDataを入力します
    • HTTP 要求ヘッダー タブで、新しい行を追加してそれに対して次のフィールドを設定します:

      • [ ] :Ocp-Apim -定期 キーを入力します
      • [値 ] : $auth.。 ここに表示されているとおりに正確に値を入力してください。
    • 要求本文 クイック タブで、以下のフィールドを設定します:

      • [コンテンツ タイプ ] : 適用/

      • [ ] : 要求本文の内容を入力します。 次に例を示します。

        {
            "deviceType": "CloudPrinter",
            "deviceId": {
                "printerName": "$label.printer$",
                "workstation": null
            },
            "data": "$label.body:base64$"
        }
        
  9. アクション ウィンドウで、保存を選択します。

  10. 外部サービスの定義 ページに戻るには、閉じる ボタンを選択します。

  11. リスト ペインで、この手順の最初に作業していたレコードを選択します。

  12. ラベル印刷サービス クイック タブで、次のフィールドを設定します。

    • [印刷操作 ] : ZPLベースのレイアウトを印刷する操作を作成した場合は選択の名前 ( SendData)。

    • [変数の印刷 ] : 変数ベースのレイアウトを印刷する操作を作成した場合は選択の名前を入力します ( Print)。

    • [変数レイアウト テンプレート : 変数ベースのデータを使用しているレイアウト、変数ベースのテンプレートのコンテンツレイアウトします。 次に例を示します。

      "filePath": "$SystemVariables.LabelFile$",
      "quantity": "$SystemVariables.Quantity$",
      "dataSources": [
          {
              {{Row Table=LabelLayoutVariable
                  "$LabelLayoutVariable.Variable$": "$LabelLayoutVariable.Value$",
              }}
          }
      ]
      

クラウド プリント API を使用して印刷用の外部サービス インスタンスをセットアップする

以下の手順に従って、クラウド印刷 API を使用して印刷用の外部サービス インスタンスをセットアップしてください。

  1. 倉庫管理 > 設定 > 外部サービス > 外部サービス インスタンス に移動します。

  2. アクション ペインで、新規 を選択して外部サービス インスタンスを作成します。

  3. 新しいサービス インスタンスの以下のフィールドを設定します:

    • [外部サービス インスタンス ] : インスタンスの名前を入力します (たとえば、NLPrintProd )。
    • [ /&] : インスタンスの簡単な説明を入力します (たとえば、 Labelクラウド印刷APIの生産
    • [外部サービス定義 ] 選択 インスタンスで使用するサービス定義に関連付けらた定義。 この記事で先に提案したサービス定義値の例は NLPrint でした。
  4. 一般タブで、次のフィールドを設定します。

    • [基本URL ] : 入力 https://labelcloudapi.onnicelabel.com
    • 認証 - : Developer Portalから基本定期購読キーまたは副次定期購読キーを入力します。 このキーは、NiceLabel との統合を準備する際 に、もっと早くメモしておくべきでした。
    • ログ レベル : 選択 エラーを記録します
    • 要求の団体をログ – 選択 エラーを記録します

変数または ZPL を使用して、ラベル プリンターとラベル レイアウトを作成できるようになりました。

ノート

  • Supply Chain Management の ラベル プリンター ページでラベル プリンターを作成する際、ラベル印刷サービス プリンター名 フィールドに、NiceLabel Cloud Control Center の クラウド プリンター タブからプリンター名を入力します。 
  • Supply Chain Management の ラベル レイアウト ページで変数ベースのラベル レイアウトを作成する場合、システム変数 グリッドに 変数名 フィールドが LabelFile と設定されている行を含めます。 Value フィールドは、ラベルの完全なパスとファイル名に設定されます。 フルパスとファイル名を確認するには、NiceLabel Control Center にサインインし、ドキュメント タブでラベル ファイルを選択し、パス フィールド (ファイル プロパティ の下) のフル値をコピーします。

クラウド トリガー API を使用してローカルネットワークプリンターに印刷する Supply Chain Management の構成

Cloud Trigger API を使用すると、NiceLabel Automation Service のオンプレミス インストールを呼び出すことができ、リクエストが処理され、事前にプログラムされたアクションが実行されます。 次の手順に進む前に、Ni​​ceLabel Automation Service を実行するコンピューターに NiceLabel をインストールし、それらのコンピューターに必要なプリンターをセットアップします。 プリンターのインストールと設定に役立つガイダンスについては、NiceLabel のドキュメントを参照してください。

NiceLabel Automation Service の構成を簡素化するには、NiceLabel クラウド データ統合パックを使用し、NiceLabel ヘルプセンターの 付録 A: 統合バンドル に記載のの指示に従ってください。 次の手順は、必要な手順をまとめたものです。 詳細については、NiceLabel ヘルプ センターをご覧ください。

  1. 提供されたリンクを使用して統合パックをダウンロードします。
  2. NiceLabel コントロール センターにログインします。
  3. ドキュメント タブで、次のフォルダを作成します: /Demo/LabelCloudDataIntegration
  4. ダウンロードした zip ファイルを開き、ファイルを解凍します。
  5. ドキュメント ストレージ フォルダーの内容を NiceLabel コントロール センターの LabelCloudDataIntegration フォルダーにアップロードします。
  6. NiceLabel Automation Service がインストールされているコンピューターで、NiceLabel Automation Manager を開きます。
  7. まだ接続していない場合は、NiceLabel Automation Service を NiceLabel Cloud インスタンスに接続します。
  8. NiceLabel Automation Manager で、追加 を選択し、NiceLabel Cloud の LabelCloudDataIntegration フォルダーを参照します。
  9. CloudIntegration-CloudTrigger.misx ファイルを開きます。
  10. 印刷トリガーが一意の識別子 Api-CloudIntegrationDemo-Print を使用していることを確認します。 次に、このトリガーのみを開始します。 Supply Chain Management は現在、他のトリガーをサポートしていません。

印刷トリガーをインストールして開始したら、Cloud Trigger API を使用して NiceLabel Automation Service にアクセスするために必要な外部サービス定義と外部サービス インスタンスを構成する準備が整います。 デモ自動化構成をカスタマイズしない限り、印刷できるのは変数ベースのレイアウトのみであり、ZPL ベースのレイアウトは印刷できません。 この場合、外部サービス定義で構成する必要がある操作はひとつだけです。

クラウド トリガー API を使用して印刷用の外部サービス定義をセットアップする

以下の手順に従って、クラウド トリガー API を使用して印刷用の外部サービス定義をセットアップしてください。

  1. 倉庫管理 > 設定 > 外部サービス > 外部サービス定義 に移動します。

  2. アクション ペインで、新規 を選択して外部サービス定義を作成します。

  3. 新しいサービス定義の以下のフィールドを設定します:

    • [外部サービス定義 ] :NLTrigger を入力
    • [説明 ] : ラベル クラウドapiトリガー入力します
  4. アクション ウィンドウで、保存を選択します。

  5. 外部サービス操作 クイック タブで、ツールバーの 操作の編集 を選択します。

  6. 外部サービス操作 ページのアクション ペインで 新規 を選択し、印刷 サービス操作の操作を追加します。 次に、新しいレコードに対して次の手順に従います:

    • ヘッダーで、次のフィールドを設定します。

      • [外部サービス ] : 操作の名前を入力します ( Print)。
      • [ /&] : 操作の簡単な説明を入力します ( ローカル プリンタに印刷します
    • 一般クイック タブで、次のフィールドを設定します。

      • [HTTPメソッド ] : 選択 転記
      • [タイムアウト ] : 操作のタイムアウトの期間をミリ秒 (ミリ秒) で入力します ( 500、)。
      • [要求の本文の ] 選択 承認
      • [相対URL ] : /トリガー/v1/CloudTrigger/Api-CloudIntegrationDemo-Print
    • HTTP 要求ヘッダー タブで、新しい行を追加してそれに対して次のフィールドを設定します:

      • [ ] :Ocp-Apim -定期 キーを入力します
      • [値 ] : $auth.。 ここに表示されているとおりに正確に値を入力してください。
    • 要求本文 クイック タブで、以下のフィールドを設定します:

      • [コンテンツ タイプ ] : 適用/

      • [ ] : 要求本文の内容を入力します。 次に例を示します。

        {
            "Printer": "$label.printer$",
            $label.body$
        }
        
  7. アクション ウィンドウで、保存を選択します。

  8. 外部サービスの定義 ページに戻るには、閉じる ボタンを選択します。

  9. ラベル印刷サービス クイック タブで、次のフィールドを設定します。

    • [印刷操作] : このフィールドは空白のままにします。

    • 変数は、 : 選択上で作成した印刷操作 (印刷 など)。

    • [変数レイアウト テンプレート : 変数ベースのテンプレートのコンテンツレイアウトします。 次に例を示します。

      "FilePath": "$SystemVariables.LabelFile$",
      "Quantity": "$SystemVariables.Quantity$",
      "Variables": [
          {{Row Table=LabelLayoutVariable
              { 
                  "Name": "$LabelLayoutVariable.Variable$",
                  "Value": "$LabelLayoutVariable.Value$"
              },
          }}
      ]
      

クラウド トリガー API を使用して印刷用の外部サービス インスタンスをセットアップする

以下の手順に従って、クラウド トリガー API を使用して印刷用の外部サービス インスタンスをセットアップしてください。

  1. 倉庫管理 > 設定 > 外部サービス > 外部サービス インスタンス に移動します。

  2. アクション ペインで、新規 を選択して外部サービス インスタンスを作成します。

  3. 新しいサービス インスタンスの以下のフィールドを設定します:

    • [外部サービス インスタンス ] : インスタンスの名前 (たとえば、NLTriggerProdなど) を入力
    • [ /&: インスタンスの簡単な説明を入力します ( Labelクラウド トリガーAPIの生産)。
    • [外部サービス定義 ] 選択使用するサービス定義に定義されます。 この記事で先に提案したサービス定義値の例は NLTrigger でした。
  4. 一般タブで、次のフィールドを設定します。

    • [基本URL ] : 入力 https://labelcloudapi.onnicelabel.com
    • 認証 - : Developer Portalから基本定期購読キーまたは副次定期購読キーを入力します。 このキーは、NiceLabel との統合を準備する際 に、もっと早くメモしておくべきでした。
    • ログ レベル : 選択 エラーを記録します
    • 要求の団体をログ – 選択 エラーを記録します

変数を使用して、ラベル プリンターとラベル レイアウトを作成できるようになりました。

ノート

  • Supply Chain Management の ラベル プリンター ページでラベル プリンターを作成する際、ラベル印刷サービス プリンター名 フィールドに、NiceLabel Cloud Control Center の クラウド プリンター タブからプリンター名を入力します。 
  • Supply Chain Management の ラベル レイアウト ページで変数ベースのラベル レイアウトを作成する場合、システム変数 グリッドに 変数名 フィールドが LabelFile と設定されている行を含めます。 Value フィールドは、ラベルの完全なパスとファイル名に設定されます。 フルパスとファイル名を確認するには、NiceLabel Control Center にサインインし、ドキュメント タブでラベル ファイルを選択し、パス フィールド (ファイル プロパティ の下) のフル値をコピーします。
  • 変数ベースのラベル レイアウトを作成する場合、データ変数 グリッドの 変数名システム変数 グリッドの 変数名 と同じです。

その他のリソース