自転車、ランニング、ドキドキしごと

タグ: 協定シート

パラメータ値設定における、注意点

この記事では、パラメータ値設定を行う際気を付けるべき内容を記載している。

そもそもパラメータとは?

コンピュータのプログラムに対して、処理の内容を動的に決める目的で外側から与える値で、
設定に対して、どの設定値を充てたいかを決める値のことである。
普段、自分の服の色や、靴など自分が履きたいものは自分で決めているかと思うが、
それを別の人に伝えるためには、どのメーカのどの商品なのか、どの色なのかを正確に伝える必要がある。
なので、設定してほしい項目に対してどの設定を行ってほしいのかをパラメータ値として表してあげる必要があるのだ。

パラメータの形式

パラメータの形式にはCSV、TSV、xml、jsonなどがある。

1. CSV (Comma-Separated Values)

  • 値をカンマで区切ったテキストファイル形式。主に表形式データの保存や交換に使われます。

2. TSV (Tab-Separated Values)

  • 値をタブで区切ったファイル形式。CSVと似ていますが、データ内にカンマが含まれても問題が少ないです。

3. XML (eXtensible Markup Language)

  • タグを使ってデータを階層的に構造化するマークアップ言語。複雑なデータを表現するのに適しています。

4. JSON (JavaScript Object Notation)

  • キーと値のペアでデータを表現する軽量なフォーマット。Web APIや設定ファイルなどで広く使われています。

今回、CSV形式のものにフォーカスして説明を進めていきます。
ほかの形式でも考え方は同じです。

大量にあるパラメータ値の設定

新規構築などで、大量にパラメータを設定しなければならないときに、この部分は同じ、
この部分は異なる、などの設定値の差異が各所にあります。
その際、Excelなどで一覧化してあげることで、変更しなければならない値の変更を一括で行ったり、
別のパラメータに変更しなければいけないリストだけを抜き出してその部分を編集したりすることができます。

具体的に、パソコンを100台用意して、スペックが異なるものも用意しなければならないときは、
パソコンのパラメータを100行用意しておいて、スペックが異なるものだけを正しい値に修正すると、
一つ一つパラメータを作成するより少ない時間でパラメータを作成することができます。

差分の比較

パラメータ値の設定において並び順をそろえておくことも重要です。
並び順が統一されていると、デバッグやメンテナンスの際にコードの可読性が向上し、
パラメータの追加や変更にも対応しやすくなります。
さらに、バージョン管理システムを使用した場合、変更点が明確に表示されるため、チーム内でのコードレビューやコラボレーションが効率的になります。

変更点を確認しやすくなり、設定漏れが防げるのが特に利点です。

パラメータ値設定時の操作削減

パラメタ値設定時にどのような操作を行っていますか?
コンピュータ上でフォームをいじって一つ一つ操作したりしていませんか。
一つ一つの操作で、どのようなパラメータをいじっているかはわかるようになりますが、
それを大量に操作を行う必要が出てきた場合は、操作ミスによる誤ったパラメータ値の設定を行うリスクが出てきます。

そこで、パラメータ値を設定するスクリプトや、変更点のみをアップデートするスクリプトを用いれば、変更点のみを的確に変更できます。
パラメータを設定するスクリプトや、アップデートするスクリプトは使うソフトによって変更する必要があり、共通したものを使用することは難しいですが、一度パラメータ値を一括設定できるようにしておけば、一つ一つ画面操作を行う必要がなくなるので、作業ミスの低減ができます。

まとめ

ここではパラメータ値について簡単に記載しました。
パラメータ値は、設定を構成する用途として重要であり、設定するパラメータが多い場合は、一括で設定スクリプトが一つ一つ設定する場合よりも効率的に、正確に行えます。
私も業務で一つ一つ設定するのではなく、テンプレートを作成してそのテンプレートをコピーして設定を入れているのが現状です。
ほかに効率よい方法があれば教えてくださいますと幸いです。

AS2手順で気を付けるべき点

AS2手順とは、

「AS2手順」は、国際的なインターネット標準化団体のIETFが策定した国際標準の通信手順。国内で通信を行うものはそこまで多くなく、海外とのやり取りが多い印象。

AS2手順の勘所

AS2手順では多くの設定項目があり、それぞれに適切なパラメータ値を設定しないと通信できない。
AS2手順でどのような内容を記載すればいいかはあまり書いているものが多いように見えないので、知識としてまとめてみる。

そもそもAS2手順は?

AS2手順は、プッシュ型といわれるもので、相手にデータを送り付けるタイプである。全銀手順や、JX手順のようにデータを蓄積して相手から取りに来てもらうことができない。
そのため、逐一送り付ける(発呼送信)か、受信するか(着呼受信)しかできないことは覚えていてよいだろう

どう自分と相手を識別するか

データ送信するなら、接続先URIとしてURIを指定するのは当然として(受信するだけならURIは不要)、同じURIを指定されることがある。
これは同じシステム上に異なる定義がのっかっている場合によくあることだ。
例えば、WEBでも、接続しているURLは同じだが使用するアカウントが異なれば、システムは異なるアカウントをして識別できる。
自分と相手を識別するものとして、当方識別子、相手識別子がある。
これが、相手がどれかを特定する識別子として働き、同じURIを指定されたとしても別の設定として認識できるようになる。
また、経験上、設定値として当方識別子と相手識別子は異なるものを設定しておいたほうがよいだろう。

セキュリティの担保

AS2通信では主に2つの証明書を用いて通信を行う
AS2通信における署名と、暗号化である。

署名の証明書と暗号化の証明書での役割が異なるため、異なる証明書を指定することができる。(一方で正しい証明書を設定できないと正しい設定とするのにかなり時間を要する)

署名の証明書

署名の証明書は、AS2メッセージを送受信するときに使用する。
AS2メッセージを送信するときに暗号化するため秘密鍵が必要である。
したがって秘密鍵を含んだ証明書を指定しなればならない。
また、受信時は、暗号化されたメッセージを複合するために、暗号化に使用された証明書の公開鍵を設定しないといけない。

暗号化の証明書

暗号化の証明書はAS2メッセージを暗号化する際に使用する。
暗号化する際に使用する証明書と、署名の証明書は同じでもよいし、異なるものでもよい。
暗号化する際は、署名の証明書同様、秘密鍵、公開鍵の設定は必須である。

各種設定値

取引相手ごとにどのような設定をするかを決めることができる。
具体的には、

など、様々な設定値を決めておく必要がある。
もし、取引先から仕様書をもらうようなことがあれば、自分のAS2設定とにらめっこして設定するようにしておけばよいだろう。

まとめ

AS2は、プッシュ型のEDIプロトコル。
海外とやり取りするときに選択されることが多い。
設定値が多いので一つ一つ確実に確認しながら設定することが肝要。

めんどい

以上です。

【EDI】JX手順の設定項目についてまとめる

EDIの記事少なすぎ問題

正しい知識か、誤った知識化にかかわらず、EDIというニッチな分野はだれからも見向きもされないので、自分で記事を起こすしかない。
今回は、JX手順でよく参照される、設定項目を協定シートをもとに記載していきたいと思う。

おことわり

以下に記載する内容についての、正誤については一切保証しません。
あくまで自分の参照用に記載しています。
誤っているところあったら指摘してください。
糧にします。

そもそもJX手順とは

JX手順は、流通BMSが、採用している通信プロトコルのひとつです。C-S型と呼ばれるタイプで、1回の送受信のデータ量が、小量の場合に利用されます。(2021.08.23更新)

https://icn-s.info/blogindex/jx-protocol

JX手順は、データをやり取りする際のプロトコルである。
クライアント、サーバの形式で、クライアント側からアクセスしに行き、データを取得、または送信する形式である。
データ量が小量である場合に使用されるとあるが、結構MB単位でやり取りをしている取引先もあるように見える。
JX手順では、SOAP(Simple Object Access Protocol)と呼ばれる同期型の通信プロトコルを使用している。
設定項目も多く、堅牢とのこと。
多くはhttps通信を使用しており、セキュリティ的にも暗号化されて送信されている。

SOAPhttps://qiita.com/Urushibara01/items/f19a9489c08313b9fdde

JX手順は、これから記載する流通BMSの標準ともあって、流通業界で多く使用されているらしい。

流通BMS協定シートとは?

流通BMS協定シートは、2013年ごろから変更がないが、いまだ現役である。

https://www.gs1jp.org/ryutsu-bms/standard/standard01_2.html

流通BMS協定シートのリンクを上に記す。
流通BMS協定シートでは、標準化された業務を一つ一つ記載するため、項目の入力に非常に手間と時間がかかるように見える。
また、協定シートは、取引する会社ごとに作成しないといけない。
この協定シートについての記載方法について簡単にまとめているサイトがあるので以下に記す。

流通BMS協定シートからのJX手順パラメータ設定方法

https://icn-s.info/icnblogindex/bms-sheet-jx

必要な項目をかいつまんで話すと、最低限必要な設定項目は以下
再送回数とか、再送間隔とか3回、180秒間隔とかで設定しておけば多分OKでしょ。

  • 接続先URL
  • サーバー側
    サーバーURI=マシン識別情報
    サーバー識別子=企業識別情報
  • クライアント側
    クライアントURI=マシン識別情報
    クライアント識別子=企業識別情報
  • ベーシック認証(多くはサーバ側が記載)またはクライアント認証鍵の情報
    ユーザID
    パスワード
協定シートから引用

ここの項目を埋めなければならない。

まとめ

JX手順の設定項目は多岐にわたり、しっかり文書でやり取りしないと設定がままならないことが分かった。
誤りがないように案内するためにしっかり備忘録として残しておく。

所感

ぶっちゃけこの項目一覧通信情報だけ切り出してフォームとかに記入できるようにしておいたほうがいい。それか別のシートに通信パラメタだけ起こすような申請書作ったりして。
1企業ごとに取引先社数以上の協定シート作成とか地獄でしかない。
メールとかで送り付けるようなフォーム作っとこうかしら。