ラベル 棚卸 の投稿を表示しています。 すべての投稿を表示
ラベル 棚卸 の投稿を表示しています。 すべての投稿を表示

2014-12-01

『FMEasy在庫』 とiPadによる棚卸と在庫誤差調整(2) ―― 在庫誤差調整伝票の作成

 前回の記事では、iPad のバーコード読み取りによる棚卸入力機能を実装するところまでをご紹介しました。

 『FMEasy在庫』 とiPadによる棚卸と在庫誤差調整(1) ―― 棚卸入力を実装する

 棚卸作業をしてみると、システム上の在庫数と、棚卸在庫数(実在庫)が一致しない ― 誤差がでる ― ことはよくあることです。

FMEasy在庫 R1.0/R1.5 に在庫誤差調整伝票作成機能を実装する


 今回は『FMEasy在庫 R1.0/R1.5』をカスタマイズし、入庫/出庫の調整伝票を作成することにより在庫誤差調整を行う機能の作成方法をご説明します。

 前回と同様、以下の用語を使っていきます。

【用語解説】

在庫数 ― システム上の在庫数。『FMEasy在庫 R1.0/1.5』で入出庫登録を行った結果、算出・表示される商品画面上の[在庫数]。以下の[棚卸在庫]とは異なる可能性がある

棚卸在庫 ― 実際の存在する商品の在庫数、または『FMEasy在庫 R1.0/1.5』に入力されたその値。システム上の在庫数(=[在庫数])とは異なる可能性がある



棚卸 ―  実際に存在する商品の数を(カスタマイズ後の)『FMEasy在庫 R1.0/1.5』に入力すること

在庫誤差調整 ―  「システム上の在庫数」と「棚卸在庫」の誤差を入庫/出庫の調整伝票を作成することにより修正すること、またはその機能


 それでは、こちらの動画をご覧いただいたあとで、実際のカスタマイズ方法をご紹介します。





【開発レベル】
中級(レイアウト修正、テーブル修正、スクリプト修正について理解している)

【用意するもの】
1. 『FMEasy在庫 R1.0』または『FMEasy在庫 IWP/WD R1.5』
『FMEasy在庫』はこちらからダウンロードできます。
2. iPad/iPad Mini
3. FileMaker Go 13 (iPad にインストール)
FileMaker Go 13 はこちらからダウンロードできます。


注意:
1. 作業を始めるまえに、必ず『FMEasy在庫』のバックアップをお取りください。
2. 作業の際、修正場所を間違えると、既存の機能が動作しなくなる可能性があります。


1. 在庫誤差調整に必要なフィールドを準備

 以下のフィールドを EasyData15.fmp12(R1.0の場合、EasyData.fmp12) の商品テーブルに追加します。

 [c在庫誤差](計算) ― 在庫誤差、誤差がある場合、調整の対象となる
 式: If(棚卸在庫 = ""; 0; c在庫数 - 棚卸在庫)   //[棚卸在庫]が空欄(未入力)の場合、誤差は 無いものとみなす

 [c入庫数調整](計算) ― [c在庫誤差] がマイナスのときに、この誤差を入庫対象数とする
 式: If(c在庫誤差  <  0; Abs(c在庫誤差); 0)

 [c出庫数調整](計算) ― [c在庫誤差] がプラスのときに、この誤差を出庫調整伝票の対象とする
 式: If(c在庫誤差  > 0; c在庫誤差; 0)

 [gNo](数値型、グローバル) ― 入庫伝票No/出庫伝票No の入出明細取込用一時記憶フィールド、後述のスクリプトで使用


2. 在庫誤差調整伝票作成スクリプトを作成

 このスクリプトの仕様は以下の通りです。

1)  在庫基準日を本日の日付(棚卸作業実施日)にする。
2)  棚卸作業を行わなかった商品は調整対象から除外する。
3) [在庫数] - [棚卸在庫] の誤差がプラスの場合は 出庫伝票、マイナスの場合は 入庫伝票 を作成する。
4) [在庫数] - [棚卸在庫] が 0 になる商品については、調整伝票を作成しない。
5) 入庫伝票/出庫伝票 の[伝票区分]は [7:在庫調整](新設)とし、通常の伝票区分とは区別する。
6) 入出明細::備考フィールドに[棚卸担当ID]を記録。

 上記の条件に従ってスクリプトを記述すると、たとえばこのようになります。



 スクリプトの流れ上、入力チェックやウィンドウ切替などのステップも含まれていますが、基本的には上記の赤囲みの部分が押さえられていれば調整伝票を作成できるようになります。

① システム在庫を本日時点のものにする

 棚卸作業が終わった直後、つまり本日時点のシステム在庫と、棚卸在庫の差違をみるため、[在庫基準日1] に本日の日付を設定します(Get(日付))。

② [c入庫数調整] に値が入っている商品データを検索します。 
 このデータが入庫伝票作成対象となります。
 対象レコードがみつかった場合は、入庫伝票を新規作成し、その[入庫No]を [gNo]に一時記録します。

 次に、対象商品データを入庫明細として「入出明細」テーブルに取り込みます。
 その際、[入庫No] として[gNo]を取り込みます。
 取り込み順は以下のとおりです。

(商品テーブル)(入出明細テーブル)
商品ID商品 ID
g在庫基準日1入出庫日
単位単位
仕入単価仕入単価
JANJAN
棚卸担当ID備考
c入庫数調整入庫数量
gNo入庫No

 ※データ取り込みのデータ自動入力オプションはオンにします。

③[c出庫数調整] に値が入っている商品データを検索します。 
 このデータが出庫伝票作成対象となります。
 対象レコードがみつかった場合は、出庫伝票を新規作成し、その[出庫No]を [gNo]に一時記録します。

 次に、対象商品データを出庫明細として「入出明細」テーブルに取り込みます。
 その際、[出庫No] として[gNo]を取り込みます。
 取り込み順は以下のとおりです。

(商品テーブル)(入出明細テーブル)
商品ID商品 ID
g在庫基準日1入出庫日
単位単位
販売単価販売単価
JANJAN
棚卸担当ID備考
c出庫数調整出庫数量
gNo出庫No


 ※データ取り込みのデータ自動入力オプションはオンにします。

 ここまでできたら、一度スクリプトを実行してみましょう。
 調整伝票が作成されるとともに、商品の[在庫数]と[棚卸在庫]がぴったり一致していれば成功です。

【入庫調整伝票の例】



【出庫調整伝票の例】



【在庫の一致を確認(テスト段階)】



 何度かテスト実行して、問題がなければ、上記スクリプト内でコメントアウトされている[棚卸在庫]および[棚卸担当ID]の全置換クリアステップを有効にします。

 これにより、棚卸調整在庫が作成された後は、自動的に棚卸情報がクリアされますので、次回の棚卸作業時に[棚卸在庫]および[棚卸担当ID]フィールドがクリアされていないということがなくなります。

【在庫誤差調整伝票スクリプトの配置場所】

 在庫誤差調整伝票作成の実行ボタンは、ここでは商品一覧画面に配置してみます。
 赤囲みのところにご注目ください。
 [棚卸在庫]フィールドを[在庫数]フィールドの下に配置することで、調整伝票作成前に棚卸状況を確認できるようになっています。


 そして、“調整実行”ボタンをフッタ位置に配置し、ボタンクリックで調整伝票を一括作成することができます。

 “調整実行”ボタンについては、ユーザ権限による制御を追加するなど、誤操作防止策を検討してみてください。


【重要:在庫誤差調整伝票を作成するタイミング】

 システム在庫は常に変動しています。
 このため、棚卸作業開始~在庫誤差調整伝票作成完了までの間、一般ユーザによるシステムの使用や入出庫作業を禁止する必要があります。

 「禁止!」と言っているのにアクセスしてくる困ったちゃんがいる場合、FileMaker Server を停止し、サーバ上で本スクリプトを実行します。
 これにより、在庫の誤差がなくなることになります。

 なお、繰越処理(在庫や各種残高を繰り越す処理)を行っている場合、繰越処理の中に本スクリプトを組み込むのも Good!と思います。



(亀)

2014-11-26

『FMEasy在庫』 とiPadによる棚卸と在庫誤差調整(1) ―― 棚卸入力を実装する

 今回は、iPadによる棚卸入力モジュールの開発方法をご紹介していきます。

FMEasy在庫 R1.0/R1.5 に棚卸入力モジュールを実装する

 ここでは弊社製品 FileMaker 在庫管理テンプレート『FMEasy在庫 IWP/WD R1.5』に沿って解説を進めていきますが、『FMEasy在庫 R1.0』を利用することもできます。

Q. 棚卸入力モジュールを使うと、倉庫の商品のバーコードを iPad で読み取って商品個数を入力するだけで、素早く、簡単に棚卸作業が進められるようになるの?

A. (最初から期待を裏切ってしまうかもしれませんが)微妙です。
 皆様は棚卸作業の時、商品リストを印字して、倉庫に持っていき、一人が商品をカウントして読み上げ、もう一人が数量をリストに書き込む、というような作業をされいると思います。

 リスト上の商品が棚番でソートされているようであれば、カウントした商品数を素早くリストに書き込むことができ、リストに書き込んだ数値をExcelや在庫管理アプリに入力するというのも、立派なやり方と思います。

 ただ、棚番管理ができていない等の理由により、リスト紙ベースの棚卸がうまく機能していないようであれば、iPadなどの携帯端末による棚卸を検討されてはいかがでしょうか。 

 iPad/iPhoneによる バーコードスキャンは慣れが必要です。スキャンをすばやく実行できるようになれば、棚卸入力モジュールはかなり有望と思います(自画自賛><)。


 それでは、以下の2つの機能に分けて、その作成方法をご説明していきます。

 1. iPad および FileMaker Go 13 のバーコード読み取り機能による棚卸入力モジュール
 2. 上記で入力した棚卸在庫数とシステム上の在庫数の誤差を修正する調整伝票作成機能

  今回は 1. の棚卸入力モジュールにいて説明しますが、その前に少しだけ用語のご説明……


【用語解説】

在庫数 ― システム上の在庫数。『FMEasy在庫 R1.0/1.5』で入出庫登録を行った結果、算出・表示される商品画面上の[在庫数]。以下の[棚卸在庫]とは異なる可能性がある

棚卸在庫 ― 実際の存在する商品の在庫数、または『FMEasy在庫 R1.0/1.5』に入力されたその値。システム上の在庫数(=[在庫数])とは異なる可能性がある



棚卸 ―  実際に存在する商品の数を(カスタマイズ後の)『FMEasy在庫 R1.0/1.5』に入力すること

在庫誤差調整 ―  「システム上の在庫数」と「棚卸在庫」の誤差を入庫/出庫の調整伝票を作成することにより修正すること、またはその機能

iPadによる棚卸モジュールを作成する

まずは、こちらの動画をご覧ください。



 倉庫の商品棚のバーコードを iPad で読み取り、各々の商品の個数をタッチパネルで入力している様子です。

 操作手順は以下のとおり。
  1. 画面上部の[JAN]フィールドをタップしてカメラをアクティグにする
  2. バーコードにフォーカス。フォーカスが合うと、iPadが勝手に商品を検索してくれて、[棚卸在庫]がアクティブに。
  3. 値一覧(1~9)の数値をクリックするか、テンキーから実際の在庫数を入力。

    以下、1~3 を繰り返して、各商品の[棚卸在庫]を入力していきます。

 さて、ご覧のように、バーコードは棚に貼りつけておくと、素早くスキャンできると思います。

 この動画では、私が棚卸作業をしていますが、バーコード読み取り時にカメラのフォーカスを合わせたり、数値をスムーズに入力したりするには少々コツがいります。
 慣れればかなり速くスキャンができるようになると思います。

 商品をひとつひとつ手に取り商品上のバーコードをスキャンすることもできますので、どちらが御社に適しているのか、検討してみてください。

 それでは、この棚卸作業用の画面を開発してみましょう。

【開発レベル】
中級(レイアウト修正、テーブル修正、スクリプト修正について理解している)

【用意するもの】
1. 『FMEasy在庫 R1.0』または『FMEasy在庫 IWP/WD R1.5』
『FMEasy在庫』はこちらからダウンロードできます。
2. iPad/iPad Mini
3. FileMaker Go 13 (iPad にインストール)
FileMaker Go 13 はこちらからダウンロードできます。


注意:
1. 作業を始めるまえに、必ず『FMEasy在庫』のバックアップをお取りください。
2. 作業の際、修正場所を間違えると、既存の機能が動作しなくなる可能性があります。

1. 取扱商品の JAN コードを商品マスタに登録

 社内の取扱商品の JAN コードを商品マスタに登録しておきます。
 商品マスタへのJAN コードフィールドの配置方法と登録のしかたについては、こちらの記事をご参照ください。

 iPad のバーコードスキャンで入庫伝票を作成 ― FMEasy在庫のカスタマイズ


2. 商品テーブルに棚卸作業用のフィールドを追加

 棚卸作業をするにあたり、以下のフィールドを EasyData15.fmp12/EasyData.fmp12 の商品テーブルに追加します。

 [棚卸担当ID] (数値型) ― 棚卸担当の[社員ID]を入力するためのフィールド
 [棚卸在庫](数値型) ― 倉庫棚の在庫数を入力するためのフィールド



3. JANコード検索用のフィールドを UI テーブルに追加

 棚卸用バーコードスキャン用のフィールドを EasyApp15.fmp12/EasyApp.fmp12 の UI テーブルにグローバルテキストフィールドとして追加します。




4. 棚卸担当者の氏名情報と担当者の過去の棚卸実績を照会するためのリレーションを追加


 以下の 3 つの TO を追加します。

 1) 社員_棚卸担当ID (社員テーブル)
 2) self_棚卸担当ID (商品テーブル) 任意
 3) self_商品ID(商品テーブル) 任意


1) [棚卸担当ID]と社員マスタのリレーション

 商品TOの[棚卸担当ID] と社員_棚卸担当ID TO の[社員ID]を関連付けます。



 2) 同じ[棚卸担当ID]が過去に棚卸処理をした商品を調べるためのリレーション

 商品 TO の [棚卸担当ID] と self_棚卸担当ID TO の [棚卸担当ID] どうしを関連づけます。


 これにより、ある担当者が過去に実行した棚卸実績を閲覧できるようになります。
 棚卸機能としては必須のリレーションではありませんが、棚卸作業もれや棚卸ミスをチェックできますので、用意しておくと便利でしょう。

 3) 棚卸実績の[商品ID]からその商品の情報に移動するためのリレーション

 上記で用意した self_棚卸担当ID TO の[商品ID] と self_商品ID TO の [商品ID] フィールドを関連づけます。


 これにより、棚卸実績の中からその商品情報に移動(照会)できるようになります。
 棚卸機能としては必須のリレーションではありませんが、棚卸作業時には、商品情報照会の操作性がアップしますので、用意しておくと便利でしょう。

5. 棚卸作業用のレイアウトを追加

 EasyApp15.fmp12/EasyApp.fmp12 のレイアウトモードで新規レイアウトを作成します。
 FileMaker Pro 13 では、下図のように視覚的にレイアウトを作成できます。




 このとき、表示するレコードは「商品」、レイアウト名は ipad 用の棚卸画面とわかる名前を指定しておきます。

 また、ここでは縦置きを前提にしたレイアウト選択を行っていますが、運用時に縦置きと横置きとでどちらが使い勝手が良くなるかを事前によく検討しておくと、後々のレイアウト調整の手間が省けます。

 あとは上記で用意した TO とリレーションを使って、[棚卸担当ID]、[棚卸在庫]、[gJAN] (スキャン用)などのフィールドを配置していきます。

 たとえば、レイアウトの加工例はこのようになります。
 最低限のユーザ入力が必要になるフィールドには赤囲みを付けておきますので、参考にしていただけると幸いです。



 図中、「タップでスキャン開始」となっているフィールドは UI TO の [gJAN] フィールドになります。
 操作では、このフィールドをタップした瞬間にバーコード読み取りモードに移り、iPad のカメラが起動させるようにします。


7. バーコード読取スクリプトを編集(または作成)

 iPad からバーコードを読み取るためのスクリプトを用意します。
 スクリプトの作成方法の詳細については、こちらの記事をご参照ください。

 iPad のバーコードスキャンで入庫伝票を作成 ― FMEasy在庫のカスタマイズ

たとえば、バーコード読取スクリプトの編集例はこのようになります。


8. JAN コードによる商品呼出スクリプトを追加

 ユーザが UI の [gJAN] フィールドにスキャンした JAN コードを使って商品検索を行うスクリプトを作成します。

 たとえば、以下の図のようになります。



9. [gJAN] フィールドにスクリプトトリガを実装

 [gJAN] フィールドを iPad でタップした瞬間(OnObjectEnter) にバーコード読取が実行されるようにスクリプトトリガを設定します。

 また、[gJAN]へのバーコード読み取りが終了した瞬間(OnObjectSave) に JAN コード検索が実行されるようにスクリプトトリガを設定します。

 たとえば、以下のようになります。



 ここまでできたら、iPad に FileMaker Go 13 をインストールして、棚卸入力テストを行ってみてください。

 本記事の棚卸操作のような動きになれば成功です。


【棚卸実績を表示させる】

 ここでは、画面右の棚卸実績ポータルの作り方について解説します。
 ご覧のように、同じ棚卸担当者(例:土屋)が行った棚卸実績が一覧表示されていると、棚卸在庫数とチェック漏れの確認ができて便利ですね。



 棚卸実績表示用のリレーションシップの設定については、前述の「4. 棚卸担当者の氏名情報と担当者の過去の棚卸実績を照会するためのリレーションを追加」をご覧ください。


 ポータル指定の際に使うリレーションは「self_棚卸担当ID」となります。


 
 このリレーションの参照先が商品テーブルとなっていますので、[商品名]と[棚卸在庫]を配置しておけばよいでしょう。

 本稿では省略しますが、“照”ボタンをクリックすることによって、その行の商品の詳細情報を別ウィンドウで表示させたりすると、より使い勝手がよくなるでしょう。



 在庫誤差調整機能については、次回の記事でご紹介したいと思います。

 「iPadでバーコードスキャンして、棚卸表ができました!」というだけでは「で?」と突っ込まれそうなので、入力した[棚卸在庫]とシステム上の在庫数の誤差を調整伝票を発行して修正する機能もつくりました。
 続きはこちらの記事をご覧ください。

 『FMEasy在庫』 とiPadによる棚卸と在庫誤差調整(2) ―― 在庫誤差調整伝票の作成 


(亀)