SmartFは、外部システムとの連携や集計業務のためにCSVデータの取込/出力に対応しています。
本ページでは、CSV取込/出力の設定方法について紹介します。
※各画面の概要やボタンの操作方法については以下のページをご確認ください。
画面遷移
- MAIN MENUで[設定]を選択します
- 設定メニューで[CSV取込設定]または[CSV出力設定]を選択します
CSV取込のヘッダー設定/詳細設定
| 表示位置 | 名称 | 説明 | 仕様/備考 | 関連リンク |
|---|---|---|---|---|
| ヘッダー設定 | 処理 | どの情報を取込むか選択します | ・選択した処理に応じて詳細設定欄の表示内容が異なります ・各処理で取込時に必須の項目は、詳細設定欄で赤線付きで表示されます |
|
| ヘッダー設定 | フォーマット | 取り込みフォーマットを選択します | ||
| ヘッダー設定 | デリメータ | カンマ区切りはCSV、タブ区切りはTSVを選択します | txt形式のファイルも取り込み可能です | |
| ヘッダー設定 | ヘッダーあり | データの名称も取り込むかどうかのチェック欄となります。 チェックを入れると、ヘッダーの1行目を飛ばして2行目からデータから取得します。 なしの場合は1行目からすべてを取り込みます。 |
||
| ヘッダー設定 | ヘッダー種別 | ヘッダー名 :ヘッダーにデータの名称(列名)が表示されているリストを取り込む場合に使用します。 ヘッダー位置:ヘッダーがなかったり、データの名称が重複している場合に使用します。 A列=0、B列=1というように、列の順番を位置指定し、取得します。 |
||
| ヘッダー設定 | エンコード | 取込するCSVデータのエンコード(文字コード)を設定します。 | 以下のエンコードに対応しています ①UTF-8 ②Shift-JIS ③Unicode ④ANSI |
|
| ヘッダー設定 | スキップ数 | 指定の行までをスキップして取込を行います。数値は必ず0以上に指定します。 また、ヘッダーは必ず1行目にします。 ※スキップせず上から順に取込むだけの場合は「0」を指定します |
||
| ヘッダー設定 | 条件 | 特定の条件に合致するものだけを取り込むことができます。 条件を入力する際は{ }を付けて入力します。 |
例:{コード}と入力すると、コードが下記の「条件値」に合致するものだけを取り込みます。 | |
| ヘッダー設定 | 条件値 | 条件値を入力します。 | 3と入力があれば、上記の「条件」と合わせて「コードが3の行だけを取り込む」ことができます。 | |
| ヘッダー設定 | ソートカラム | •CSVデータ内の特定の項目を昇順/降順に並び替えてから取り込むことができます。 |
設定方法は以下の通りです。 ・並び変えたい項目のプロパティ名とASC/DESCの間に半角スペースを入れます ※DeliveryDate ASC,Code ASC のようにカンマを使って複数条件を設定することも可能です |
|
| ヘッダー設定 | パス | 自動取込ツールの利用時に取込元として指定するフォルダを設定します | 自動取込ツールでのみ表示される設定項目です。取込元として指定したフォルダを常に監視しており、そのフォルダ内にCSVデータが保存されると自動で取込を行います。 | SmartF自動取込ツール |
| ヘッダー設定 | 差分のみ取込 | チェックを入れると、直前に取り込んだCSVデータとの差分のみを取り込みます | データ量が多いなどの理由で取込に時間がかかる場合に、パソコンへの負荷を下げるために使用します 例:外部で管理している品番マスタに更新があり、SmartFの品番マスタに取り込みたいが、外部システムの都合で品番マスタは全出力しかできない場合 →前回取り込んだ時から変化があった品番の差分を抽出し、変更分だけを取り込むことが可能です |
|
| ヘッダー設定 | リトライ回数 | CSVデータの自動取込に失敗した場合に再度取込する回数(時間)を設定します | 自動取込ツールでのみ表示される設定項目です。 | SmartF自動取込ツール |
| ヘッダー設定 | 新規:エラー | 品番マスタのCSV取込時に、新規の品番が含まれている場合にエラーを出して取り込まないようにするかを設定します |
・処理で「品番」を選択している場合にのみ表示されます ・既存のマスタ情報を更新するための専用フォーマットに対してチェックを付けておき、新規品番が含まれていると取り込まないようにすれば、間違った品番が取り込まれるのを防ぐことができます |
|
| ヘッダー設定 | 未指定分空欄 | チェックを入れると、CSV取込設定でフォーマットを登録していない項目は空欄として取り込みます |
・チェックを外した場合、CSV取込設定でフォーマットを登録していない項目は空欄に上書きされず、もともと値が登録されていた場合はその値がそのまま保持されます ※未指定分空欄は、処理「出荷」「生産指示-工程明細」でのみ設定可能な項目です |
|
| 詳細設定 | プロパティ名 | SmartFの画面上に表示されている各種のデータの、プログラム上の管理名称です。 | この一覧に表示されているデータであれば、SmartFにて取込を行うことができます。 例:Code:会社のコード、Name:会社名、Notes:備考 |
|
| 詳細設定 | フォーマット | 上述の「ヘッダー種別」の選択によって入力方法が異なります。 また、いずれの場合も入力する際は値を{ }を使用して囲むように入力します。 |
①ヘッダー名:ヘッダーの列に名称が割り振られている一覧形式のCSVファイルを取り込む場合はです。{ } と 列の名称を入力します。 ②ヘッダー位置:ヘッダーの列の名称が順番で構成されている一覧形式のCSVファイルを取り込む場合です。 ※ヘッダー位置は0から数えます。 ※複数データの結合や、一部のみの抜粋、固定値の取り込みといった複雑な取り込みにも対応しています。詳細はCSV取込/出力の設定方法をご参照ください。 |
CSV出力のヘッダー設定/詳細設定
| 表示位置 | 名称 | 説明 | 仕様/備考 | 関連リンク |
|---|---|---|---|---|
| ヘッダー設定 | 処理 | どの情報を出力するか選択します | ・選択した処理に応じて詳細設定欄の表示内容が異なります | |
| ヘッダー設定 | フォーマット | 出力フォーマットを選択します | 標準フォーマット(StandardFormat)で詳細設定を空欄にしておくと、すべての項目が出力されます ※ただし、項目名はすべて英語で出力されます。 | |
| ヘッダー設定 | デリミタ | カンマ区切りはCSV、タブ区切りはTSVを選択します | ||
| ヘッダー設定 | ヘッダーあり |
チェックを入れると、CSVデータの1行目にヘッダー名を挿入して出力します チェックがない場合は1行目からデータが出力されます |
||
| ヘッダー設定 | エンコード | 出力するCSVデータの形式を選択します | 以下のエンコードに対応しています ①UTF-8 ②Shift-JIS ③Unicode ④ANSI |
|
| ヘッダー設定 | 条件 | 特定の条件に合致するものだけを出力することができます。 条件を入力する際は{ }を付けて入力します。 |
例:{Code}と入力すると、コードが下記の「条件値」に合致するものだけを出力します。 ※条件に合致するデータがない場合、PCアプリの場合は「条件に一致するデータがありませんでしたので、ファイルを出力していません。」というメッセージが表示されます。自動取込/出力ツールの場合は「エラー. データがありません。」というログが残ります。 |
PC:入出庫履歴のCSV出力で取消済みの履歴データを対象外にする |
| ヘッダー設定 | 条件値 | 条件値を入力します。 | 3と入力があれば、上記の「条件」と合わせて「コードが3の行だけを出力することができます。 | |
| ヘッダー設定 | ソートカラム | CSVデータ内の特定の項目を昇順/降順に並び替えてから出力することができます。 |
設定方法は以下の通りです。 ・並び変えたい項目のプロパティ名とASC/DESCの間に半角スペースを入れます ※DeliveryDate ASC,Code ASC のようにカンマを使って複数条件を設定することも可能です |
CSV出力する際に出力データを任意の項目でソートする |
| ヘッダー設定 | グルピングカラム | CSV出力時に同一の値が入っていれば1行にまとめて出力したい項目を設定します。 |
・OrderNo,DetailNoなど、複数項目を設定できます ・指定したカラムに対して複数データがある場合、グルピングして最初のデータのみが出力されます |
任意の項目で統合・合算したCSVデータを出力する |
| ヘッダー設定 | 合算カラム | グルピングカラムの設定でCSVデータがまとめて出力される際に、合算した値を出力したい項目を設定します。 | Quantity,Amountなど、複数項目を設定できます | 任意の項目で統合・合算したCSVデータを出力する |
| ヘッダー設定 | 出力後変更カラム | CSVデータの出力後に任意の項目の値を空欄にしたり、特定の値に変更したりする設定を行います | ・「入荷明細一覧」処理のみ対応しています ・外部システムと特殊な条件でCSV連携する場合などに使用できます |
入荷明細一覧のCSV出力後に任意の項目の値を変更する |
| ヘッダー設定 | ファイル名 | 自動出力したCSVデータのデフォルトのファイル名を設定します |
・自動取込(出力)ツールでのみ表示される設定項目です。 ・ここで設定したファイル名の後ろに、発行日付などが自動で付与された形でCSVデータが出力されます |
SmartF自動取込ツール |
| ヘッダー設定 | パス | 自動取込(出力)ツールの利用時に出力先として指定するフォルダを設定します |
・自動取込(出力)ツールでのみ表示される設定項目です。 ・出力先として指定したフォルダに対してCSVデータを保存します |
SmartF自動取込ツール |
| ヘッダー設定 | 出力時刻/出力周期(分) | 自動取込(出力)ツールの利用時に、自動出力するタイミングを設定します |
・自動取込(出力)ツールでのみ表示される設定項目です。 ・出力時刻は、毎日決まった時刻にCSVデータを自動出力したい場合に使用します。 ・出力周期は、CSVデータを決まった周期(分単位)で自動出力したい場合に使用します。 |
SmartF自動取込ツール |
| ヘッダー設定 | 出力 | 全データを出力するか、直近の出力時から更新されたデータのみを出力するかを設定します |
※自動出力時にのみ適用される設定です ※一部の処理では設定欄が表示されません |
|
| ヘッダー設定 | 出力期間 | 出力項目が全数に設定されている場合に、データ更新日時をもとに出力期間を設定します | ※自動出力時にのみ適用される設定です ・出力項目が全数に設定されている場合にのみ有効になります |
|
| ヘッダー設定 | 選択 | 「在庫予定」のCSV出力を行う場合に設定します |
※処理「在庫予定」でのみ有効な設定です ・チェックが付いていると、処理「在庫予定」のフォーマットで、PC:在庫一覧から予定明細の情報をCSV出力できます |
在庫一覧の予定明細をCSV出力する |
| 詳細設定 | ヘッダー名 | 出力するCSVデータのヘッダー名を入力します | ||
| 詳細設定 | フォーマット | SmartFから出力するデータを設定します |
{ }にSmartFでのデータ名(プロパティ名)を入力して設定します ※フォーマット設定の横にあるiボタンを押すと、選択中の処理で出力可能なデータの一番が表示されます ※複数データの結合や、一部のみの抜粋、固定値の取り込みといった複雑な取り込みにも対応しています。詳細はCSV取込/出力の設定方法をご参照ください。 |
フォーマットの設定方法
<関数の設定>
「フォーマット」の入力欄に指定のルールに基づいた関数を入力したり組み合わせたりすることで、より複雑な取込/出力方法を実現できます。
次のような特殊な取込/出力方法も設定が可能です。
※{AND}や{OR}を利用すれば、複数のルールを組み合わせられます。
1.「+」、「-」、「×」、「÷」などで計算して取込する
2. 複数のデータを合体して取込する
3. データの一部のみ取得して取込する
3. データの一部のみ取得して取込する
4. 条件に合致するデータのみを取り込む
※CSV出力で、1から連番をふる機能は現状存在していません
※ノットイコール( ≠ != <> など)には対応していません
<設定時のコツ・ポイント>
- 式はすべて半角で記述します。
- プロパティ名、関数、値は必ず波括弧 {} で囲みます(例:{UnitPrice},{ROUND(...))。
-
論理式や計算式を含む場合は、二重の波括弧 {{...}} を使用します。
例:{{UnitPrice}{<}0} -
演算子も波括弧で囲み、前後にスペースを入れないように記述します。
例:{{UnitPrice}{*}-1} - 式の最後に、必要に応じて {=>} を追加し、エラー時にNULLを返すようにします。
※CSV出力では、1から連番をふる機能は現状ありません。
※ノットイコール( ≠ != <> など) には対応していません
※IF文の真偽どちらか一方の条件しか提示されていない場合、提示がない方の条件には半角スペースを1つ入れて、 空欄 にする事も可能です。
<チェックボックスのON/OFFの設定>
品番マスタの在庫管理なしや棚卸対象外など、チェックボックスの設定の場合には、取り込むCSVで「True/TRUE」か「False/FALSE」を指定することで、チェックボックスのオンとオフを設定が可能です。
1.CSV取込設定の準備
①MAIN MENUー設定ーCSV取込設定を開きます。
②[処理]を対象の項目に設定します(画像は品番マスタを例にしています)
③取込設定のフォーマットに、CSV取込で設定するヘッダー名を設定します。
2.CSVデータの調整
①取込対象のCSVデータのヘッダーに、CSV取込設定のフォーマットで設定した名称を設定します。
②チェックをONにする場合はTRUE、もしくはTrueをCSVに設定し、チェックをOFFにする場合はFALSE、もしくはFalseに設定します(CSV出力時には「True/False」で出力されます)
※フォーマット設定例の「固定値を取得」を使用すれば、CSVデータ内で都度指定しなくても常時「TRUE」か「FALSE」を設定できます。
3.CSVデータの取込
CSV取込を実行すると、設定した項目のチェックボックスに指定通りのON/OFFが反映されます。
操作方法
1. ヘッダー設定で、処理とフォーマットを選択します。
2-1. 出力する項目を削除する場合は、削除したいプロパティを選択し、[ - ]をクリックします。
2-2. 出力する項目を追加する場合は、追加したい行の上の行を選択し、[ + ]をクリックします。
3. プロパティの名称を入力し、フォーマットを設定します。フォーマットには「{ }」(半角波括弧)で取込/出力する項目を囲ってください。
CSV出力設定では、[ i ]をクリックすると使用できるプロパティのリストを一覧で確認できます。
4. [保存]をクリックし、更新内容を確定します。
フォーマット設定例
①基本的な値の取得
| 概要 | ルール | ルールの説明 | 取込例 |
|---|---|---|---|
| 列内の値をそのまま取得 | {カラムA} | 「カラムA」列の値をそのまま取得する | フォーマット:{品番} 列の値が1001の場合 → 1001 |
| 列内の値を加算して取得 | {{カラムA}{+}{カラムB}} |
「カラムA」+「カラムB」の値を取得する | フォーマット:{{仕様1}{+}{仕様2}} 「仕様1」列の値が5、「仕様2」列の値が10の場合: 15 |
| 列内の値を減算して取得 | {{カラムA}{-}{カラムB}} | 「カラムA」-「カラムB」の値を取得する | フォーマット:{{仕様1}{-}{仕様2}} 「仕様1」列の値が5、「仕様2」列の値が3の場合: 2 |
| 列内の値を乗算して取得 | {{カラムA}{*}{カラムB}} | 「カラムA」*「カラムB」の値を取得する | フォーマット:{{仕様1}{*}{仕様2}} 「仕様1」列の値が5、「仕様2」列の値が3の場合: 15 |
| 列内の値を除算して取得 | {{カラムA}{/}{カラムB}} | 「カラムA」/「カラムB」の値を取得する | フォーマット:{{仕様1}{/}{仕様2}} 「仕様1」列の値が10、「仕様2」列の値が2の場合: 5 |
| 文字列を合体して取得 | {カラムA}-{カラムB} | 「カラムA」-「カラムB」の値を取得する | フォーマット:{仕様1}-{仕様2} 「仕様1」列の値が12345、「仕様2」列の値が67890の場合 : 12345-67890 ※ 「-」は「_」や「/」などの任意の文字に変更可能です |
過去の設定事例
<CSV取込>
| 内容 | 設定方法 |
|---|---|
| 項目Aがスペースなら空欄として取り込む、それ以外であればそのまま取り込む。 | {IF({{カラムA}{=} },,{カラムA})} |
| 項目Aに枝番(常に2桁)を付けて取り込みたい。 例)発注番号12345 発注行番号 -99 → 12345-01 12345-02 12345-03 ・・・ |
{発注番号}-{IF({{COUNT({発注行番号}|)}{>}1},{{発注行番号},r:-2},0{発注行番号})} ※ただし、発注行番号が3桁になる場合はさらにIFで条件設定が必要 |
<CSV出力>
| 内容 | 設定方法 |
|---|---|
| 項目Aに「B」と登録されているデータを除いて出力する。 | 条件:{IF({{カラムA}{=}B},0,1)} 条件値:1 |
| 項目Aが「B」かつ、項目Cが「D」のデータのみを出力する。 | 条件:{IF({{{カラムA}{=}B}{AND}{{カラムC}{=}D}},1,0) 条件値:1 |
| 前回の自動出力後に新たに「状態(StatusName)」が「完了」になったデータだけを自動出力する。 | 条件:{StatusName} 条件値:完了 出力:更新分 |
|
樹脂加工系の事例: 取り個数を品番マスタの仕様1~5に設定して、ショット数を出力する |
{{TotalProduct}{/}{仕様1~5}}{=>} |
|
当日に作成されたデータの場合は1、それ以外の場合は0で出力する ※データの比較用などに使用 |
{IF({{CreatedOn}{>=}{Now(D)}},1,0)} |
| 拠点コードが「1」のデータだけ出力する | 条件:{IF({{LocationCode}{=}1},1,0)} 条件値:1 |
| 伝票Noごとに「*」(アスタリスク)を出力したい | {IF({{DetailRowIndex}{=}1},*,)}{=>} ※DetailRowIndexのプロパティは、CSV出力設定の[仕入]と[出荷履歴]で使用できます |
②文字列処理
何文字目といった処理を行う場合は、全角・半角の区別なく、すべて1文字としてカウントされます。
| 概要 | ルール | ルールの説明 | 取込例 |
|---|---|---|---|
| 文字列の一部(指定した位置)を取得 | {{カラムA}, r:1-4} | 「カラムA」の1~4桁目を取得する | フォーマット:{{品番},r:1-5} 「品番」列の値が1234567890の場合: 12345 |
| 文字列の一部(指定した位置より前)を取得 | {{カラムA}, r:-8} | 「カラムA」の1~7桁目を取得する | フォーマット:{{品番},r:-8} 「品番」列の値が1234567890の場合: 1234567 |
| 文字列の一部(指定した位置より後)を取得 | {{カラムA}, r:2-} | 「カラムA」の2桁目以降を取得する | フォーマット:{{品番},r:3-} 「品番」列の値が1234567890の場合: 34567890 |
| 文字列の一部(後ろから〇番目)を取得 | 設定できるルールはありません |
「桁数を揃える(2桁の場合)」を利用して設定することは可能です。 例)後ろ2桁を取得 2桁の場合はそのまま |
|
| 区切り文字により列内の値を取得 | {{カラムA}, s:>|2} | 「カラムA」の>で区切られた2つ目の値を取得する | ・フォーマット:{{品番},s:>|2} 「品番」列の値がA>1234567890>Zの場合: 1234567890 ・フォーマット:{{品番},s:>|N}「品番」 列の値がA>1234567890>Zの場合: Z ※Nは最後の値を取得する ・フォーマット:{{品番},s:>|N-2} 「品番」列の値がA>1234567890>Zの場合: A ※N-2だと最後より2つ前の値を取得する ※ 「>」は「-」や「/」などの任意の文字に変更可能です |
過去の設定事例
<CSV取込>
| 内容 | 設定方法 |
|---|---|
| 項目Aの「2-7文字目」+「-」(半角ハイフン)+項目Aの「8-11文字目」を取り込む。 | {{カラムA},r:2-7}-{{カラムB},r:8-11} |
| 項目Aに枝番(常に2桁)を付けて取り込みたい。 例)発注番号12345 発注行番号 -99 → 12345-01 12345-02 12345-03 ・・・ |
{発注番号}-{IF({{COUNT({発注行番号}|)}{>}1},{{発注行番号},r:-2},0{発注行番号})} ※ただし、発注行番号が3桁になる場合はさらにIFで条件設定が必要 |
<CSV出力>
| 内容 | 設定方法 |
|---|---|
| 項目Aの文字数が40文字を超える場合は40文字までを出力、40文字以下であればそのまま出力。 | {IF({{COUNT({カラムA}|)}{>}40},{{カラムA},R:-40},{カラムA})} |
| 項目Aの文字列を20文字に区切って出力する。 (別システムのプロパティの最大文字数に合わせて出力) |
条件 プロパティ1 :{IF({{COUNT({A}|)}{>}20},{{A}, r:1-20},{IF({{COUNT({A}|)}{>}1},{{A}, r:1-}, )})} プロパティ2 :{IF({{COUNT({A}|)}{>}40},{{A}, r:21-40},{IF({{COUNT({A}|)}{>}20},{{A}, r:21-}, )})} プロパティ3 :{IF({{COUNT({A}|)}{>}60},{{A}, r:41-60},{IF({{COUNT({A}|)}{>}40},{{A}, r:41-}, )})} |
| 品番が1桁以上のとき(空欄ではないとき)、品番を" "で囲む形で出力する |
{IF({{COUNT({ItemCode}|)}{>}0},"{ItemCode}", )} ※品番など、桁数が12桁以上の場合に指数表記(1.01E+12など)になる場合に有効です |
③数値処理
| 概要 | ルール | ルールの説明 | 取込例 |
|---|---|---|---|
| 区切り数をカウントして取得 | {COUNT({カラムA}|,)} | 「カラムA」の値における区切り数を取得 | フォーマット:{COUNT({品番}|,)} 「品番」列の値がABC,123,456 の場合: 3 -「|」は何を指定していますか? 区切り文字を指定するため使用します。 フォーマットは: {カラム名}|区切り文字 区切り文字で割って、その結果の数を取得されます。 区切り文字を指定しない場合、桁数を取得します。 例: フォーマット:{カラム名}|, 値:A,B,C 結果:3 フォーマット:{カラム名}| 値:ABC 結果:3 |
| 文字数をカウントして取得 | {COUNT({カラムA}|)} | 「カラムA」の値の文字数を取得 | フォーマット:{COUNT({品番}|)} 「品番」列の値がABC,123,456 の場合: 11 |
| 四捨五入して取得 | {ROUND({カラムA},2)} | 「カラムA」の小数点以下2桁で四捨五入 | フォーマット:{ROUND({金額},2)} 「金額」列の値が12.345の場合: 12.35 |
| 切り上げして取得 | {ROUNDUP({カラムA},2)} | 「カラムA」の小数点以下2桁で切り上げ | フォーマット:{ROUNDUP({金額},2)} 「金額」列の値が12.345の場合:12.35 |
| 切り捨てして取得 | {ROUNDDOWN({カラムA},2)} | 「カラムA」の小数点以下2桁で切り捨て | フォーマット:{ROUNDDOWN({金額},2)} 「金額」列の値が12.345の場合: 12.34 |
| 銀行丸めして取得 | {ROUNDEVEN({カラムA},0)} | 「カラムA」の小数点以下0桁で銀行丸め |
フォーマット:{ROUNDEVEN({金額},0) 「金額」列の値が6987.5 の場合: 6988(奇数切り上げ) 「金額」列の値が6988.5 の場合: 6988(偶数切り捨て) |
| 桁数を揃える(2桁の場合) | {IF({{COUNT({カラムA}|)}{>}1},{{カラムA},r:-2},0{カラムA})} | 「カラムA」が1桁以上の場合、2桁を表示し、1桁の場合は前に0を追加する | フォーマット:{IF({{COUNT({明細番号}|)}{>}1},{{明細番号},r:-2},{0{明細番号}})} ※明細番号が、「99」を超えたら問題になると思います。 例:明細番号:100 の場合、10 になってしまいます。 |
過去の設定事例
<CSV取込>
| 内容 | 設定方法 |
|---|---|
| 項目Aが10かつ項目Bが0以上のデータのみを取り込む。 | 条件:{IF({{{カラムA}{=}10}{AND}{{カラムB}{>}0}},1,0)} 条件値:1 |
| 項目Aの値が「1001」〜「1999」であれば、すべて「1001」として取り込む | IF({カラムA}{>=}1001}{AND}{カラムA}{<=}1999} |
<CSV出力>
| 内容 | 設定方法 |
|---|---|
| 品番の冒頭に「99」が含まれている場合は備考欄、そうでない場合には品名を出力する | {IF({{{品番}, r:1-2}{=}99},{備考},{品名})} |
| 項目Aの1桁目が6または8のデータのみを出力する |
条件:{IF({{{{項目A},r:1-1}{=}6}{OR}{{{項目A},r:1-1}{=}8}},1,0)} 条件値:1 |
| 伝票Noごとに「*」(アスタリスク)を出力したい | {IF({{DetailRowIndex}{=}1},*,)}{=>} ※DetailRowIndexのプロパティは、CSV出力設定の[仕入]と[出荷履歴]で使用できます |
④条件分岐(IF)
| 概要 | ルール | ルールの説明 | 取込例 |
|---|---|---|---|
| IF文で取得 | IF(論理式, 値が真の場合, 値が偽の場合) | 論理式では、>, >=, <, <= が使用可能論理式で複数条件を結合する場合は、AND, OR が使用可能 真の場合、偽の場合はどちらも指定が必須 |
・フォーマット:{IF({{工数入力}{=}0},FALSE,TRUE)} 「工数入力」列の値が0の場合: FALSE 「工数入力」列の値が0以外の場合: TRUE ・フォーマット:{IF({{数量}{>}0},{数量},0)} 「数量」列の値が0より多い場合: 「数量」列の値をそのまま取得 それ以外の場合: 0 を取得 ・フォーマット:{IF({{COUNT({A}|)}{>}0},{A},{B})} 「A」列に何らかの値が入っている場合:「A」列の値をそのまま取得 「A列」がNULLの場合:「B」列の値をそのまま取得 ・フォーマット:{IF({{{品番}{=}AAAA}{OR}{{品番}{=}BBBB}},{品名}, )} 「品番=AAAAかBBBBだったら品名を入れる。それ以外は空欄 |
| 桁数を揃える(2桁の場合) | {IF({{COUNT({カラムA}|)}{>}1},{{カラムA},r:-2},0{カラムA})} | 「カラムA」が1桁以上の場合、2桁を表示し、1桁の場合は前に0を追加する | フォーマット:{IF({{COUNT({明細番号}|)}{>}1},{{明細番号},r:-2},{0{明細番号}})} ※明細番号が、「99」を超えたら問題になると思います。 例:明細番号:100 の場合、10 になってしまいます。 |
過去の設定事例
<CSV取込>
| 内容 | 設定方法 |
|---|---|
| 項目Aがスペースなら空欄として取り込む、それ以外であればそのまま取り込む。 | {IF({{カラムA}{=} },,{カラムA})} |
| 項目Aが10かつ項目Bが0以上のデータのみを取り込む。 | 条件:{IF({{{カラムA}{=}10}{AND}{{カラムB}{>}0}},1,0)} 条件値:1 |
| 項目Aに枝番(常に2桁)を付けて取り込みたい。 例)発注番号12345 発注行番号 -99 → 12345-01 12345-02 12345-03 ・・・ |
{発注番号}-{IF({{COUNT({発注行番号}|)}{>}1},{{発注行番号},r:-2},0{発注行番号})} ※ただし、発注行番号が3桁になる場合はさらにIFで条件設定が必要 |
| 項目Aの値が「1001」〜「1999」であれば、すべて「1001」として取り込む | IF({カラムA}{>=}1001}{AND}{カラムA}{<=}1999} |
| 項目Aの値が1の場合はB、2または3の場合はC、その他の場合はDとして取り込む | {IF({{カラムA}{=}1},B,{IF({{{カラムA}{=}2}{OR}{{カラムA}{=}3}},C,D)})} |
| 品番がSample1とSmaple2のものだけを取り込む | ・条件に{IF({{{品番}{=}sample1}{OR}{{品番}{=}sample2}},1,0)}と入力する。 ・条件値に1と入力する。 ※「品番」部分や「sample1」の部分を変更して取り込みたい条件や値を設定できます。 |
| 品番が空欄の場合はスキップして取り込む | ・条件に{IF({{COUNT({ItemCode}|)}{>}0},1,0)}と入力する ※桁数を取得し、0ならスキップする 注意:プロパティ名ではなくヘッダ名で指定する ・条件値に1と入力する ※bool値の場合は、「True」「False」とします ※OR、AND処理が可能です {OR}、{AND} |
| 2つの条件に合致するものを取り込む | 条件1:ヘッダー名「出荷先拠点コード」が空欄 条件2:ヘッダー名「区分名」が「廃棄」 ・条件に{IF({{{区分名}{=}廃棄}{AND}{{COUNT({出荷先拠点コード}|)}{=}0}},1,0)}と入力する ・条件値に1と入力する ※bool値の場合は、「True」「False」とします ※OR、AND処理が可能です {OR}、{AND} |
| 特定の値と部分一致するデータのみを取り込む | ・条件に{IF({Contains({品番},ABC)},1,0)} ・条件値に1と入力する ※上記条件では、品番にABCという値が含まれているデータのみを取り込みます。「品番」部分や「ABC」の部分を変更して希望する条件を設定します |
| 指定する2つの項目が同じ値のデータのみを取り込む | ・条件に{IF({Contains({品番},{備考1})},1,0)} ・条件値に1と入力する ※上記条件では、品番=備考1のデータのみを取り込みます。「品番」部分や「備考1」の部分を変更して希望する条件を設定します |
| 指定する項目の固定値を確認して取り込む | ・条件に{IF({Contains(取込,{備考1})},1,2)} ・条件値に1と入力する ※上記条件では、備考1が「取込」または「取」、「込」という文字列のデータのみを取り込みます。「取込」や「備考1」の部分を変更して希望する条件を設定します |
<CSV出力>
| 内容 | 設定方法 |
|---|---|
| 項目Aに「B」と登録されているデータを除いて出力する。 | 条件:{IF({{カラムA}{=}B},0,1)} 条件値:1 |
| 項目Aの文字数が40文字を超える場合は40文字までを出力、40文字以下であればそのまま出力。 | {IF({{COUNT({カラムA}|)}{>}40},{{カラムA},R:-40},{カラムA})} |
| 項目Aが「B」かつ、項目Cが「D」のデータのみを出力する。 | 条件:{IF({{{カラムA}{=}B}{AND}{{カラムC}{=}D}},1,0) 条件値:1 |
| 項目Aの文字列を20文字に区切って出力する。 (別システムのプロパティの最大文字数に合わせて出力) |
条件 プロパティ1 :{IF({{COUNT({A}|)}{>}20},{{A}, r:1-20},{IF({{COUNT({A}|)}{>}1},{{A}, r:1-}, )})} プロパティ2 :{IF({{COUNT({A}|)}{>}40},{{A}, r:21-40},{IF({{COUNT({A}|)}{>}20},{{A}, r:21-}, )})} プロパティ3 :{IF({{COUNT({A}|)}{>}60},{{A}, r:41-60},{IF({{COUNT({A}|)}{>}40},{{A}, r:41-}, )})} |
| 品番の冒頭に「99」が含まれている場合は備考欄、そうでない場合には品名を出力する | {IF({{{品番}, r:1-2}{=}99},{備考},{品名})} |
|
当日に作成されたデータの場合は1、それ以外の場合は0で出力する ※データの比較用などに使用 |
{IF({{CreatedOn}{>=}{Now(D)}},1,0)} |
| 拠点コードが「1」のデータだけ出力する | 条件:{IF({{LocationCode}{=}1},1,0)} 条件値:1 |
|
在庫一覧からの出力の事例 在庫数0のデータだけを出力する |
条件:{IF({{{StockQuantity}{>=}0}{AND}{{StockQuantity}{<=}0}},0,1)} 条件値:0 |
| 項目Aの1桁目が6または8のデータのみを出力する |
条件:{IF({{{{項目A},r:1-1}{=}6}{OR}{{{項目A},r:1-1}{=}8}},1,0)} 条件値:1 |
| 入荷日から発注日を引いたL.T算出の際に、小数点以下を繰り上げた整数表示、L.Tが21日未満の場合は無条件で21日と表示させる |
{IF({{ROUND({{DateDiff({ReceiveDate},{OrderDate}){/}86400},0)}{<=}21}, 21, {ROUND({{DateDiff({ReceiveDate},{OrderDate}){/}86400},0)})} ※入荷日が空欄にならないことが条件となります |
| 伝票Noごとに「*」(アスタリスク)を出力したい | {IF({{DetailRowIndex}{=}1},*,)}{=>} ※DetailRowIndexのプロパティは、CSV出力設定の[仕入]と[出荷履歴]で使用できます |
| 品番(ItemCode)がSample1とSmaple2のものだけを出力する場合 | ・条件に{IF({{{ItemCode}{=}sample1}{OR}{{ItemCode}{=}sample2}},1,0)}と入力する。 ・条件値に1と入力する。 ※「ItemCode」部分や「sample1」の部分を変更して出力したい条件や値を設定できます。 |
| 品番(ItemCode)がSample1の行以外を出力する場合 | ・条件に {IF({{ItemCode}{=}sample1},1,0)}と入力する。 ・条件に0と入力する。 |
| 特定の値と部分一致するデータのみを出力する | ・条件に{IF({Contains({ItemCode},ABC)},1,0)} ・条件値に1と入力する ※上記条件では、品番(ItemCode)にABCという値が含まれているデータのみを出力します。「ItemCode」部分や「ABC」の部分を変更して希望する条件を設定します |
| 指定する2つの項目が同じ値のデータのみを出力する | ・条件に{IF({Contains({ItemCode},{Notes1})},1,0)} ・条件値に1と入力する ※上記条件では、品番(ItemCode)=備考1(Notes1)のデータのみを出力します。「ItemCode」部分や「Notes1」の部分を変更して希望する条件を設定します |
| 指定する項目の固定値を確認して出力する | ・条件に{IF({Contains(出力,{備Notes1})},1,2)} ・条件値に1と入力する ※上記条件では、備考1(Notes1)が「出力」または「出」、「力」という文字列のデータのみを出力します。「出力」や「Notes1」の部分を変更して希望する条件を設定します |
| ある項目が複数の備考欄のいずれかに一致すれば1を返し、それ以外の場合は別の項目が特定値に一致すれば出力する | ・条件に{IF({{{Notes}{=}A}{OR}{{Notes}{=}B}{OR}{{Notes}{=}C}},1,{IF({{DetailNotes4}{=}登録済み},1,0)})} ・条件値に1と入力する ※上記式では、備考1(Notes)にA,B,Cのいずれかが入っていたら1、そうでない場合は備考4(Notes4)に登録済みなら1、そうでなければ0を出力します |
⑤日付処理
| 概要 | ルール | ルールの説明 | 取込例 |
|---|---|---|---|
| 日付に変換して取得 | {{カラムA}, d:yyyyMMdd} | 「カラムA」のyyyyMMddの値を日付に変換して取得する |
フォーマット:{{生産納期}, d:yyyy/MM/dd}{=>} フォーマット②:{{生産納期}, d:YYMMDD} ⇒231129 |
| 日付に年を加算(減算)して取得 | {AddYear({日付},1)} {AddYear({日付},-1)} |
{日付}は日付のフォーマットに出力された値になります。 ※詳細には上記の「日付に変換して取得」を参照する |
フォーマット:{AddYear({日付},1)} {日付}が「2023/06/30」の場合 ⇒ 2024/06/30 フォーマット:{AddYear({日付},-3)} {日付}が「2023/06/30」の場合 ⇒ 2020/06/30 |
| 日付に月を加算(減算)して取得 | {AddMonth({日付},1)} {AddMonth({日付},-1)} |
{日付}は日付のフォーマットに出力された値になります。 ※詳細には上記の「日付に変換して取得」を参照する |
フォーマット:{AddMonth({日付},1)} {日付}が「2023/06/30」の場合 ⇒ 2023/07/30 フォーマット:{AddMonth({日付},1)} {日付}が「2023/07/31」の場合 ⇒ 2023/08/31 フォーマット:{AddMonth({日付},1)} {日付}が「2023/08/31」の場合 ⇒ 2023/09/30 フォーマット:{AddMonth({日付},-3)} {日付}が「2023/06/30」の場合 ⇒ 2023/03/30 |
| 日付に日を加算(減算)して取得 | {AddDay({日付},1)} {AddDay({日付},-1)} |
{日付}は日付のフォーマットに出力された値になります。 ※詳細には上記の「日付に変換して取得」を参照する |
フォーマット:{AddDay({日付},1)} {日付}が「2023/06/30」の場合 ⇒ 2023/07/01 フォーマット:{AddDay({日付},-3)} {日付}が「2023/06/30」の場合 ⇒ 20230627 |
| 日付に時間を加算(減算)して取得 | {AddHour({日付},1)} {AddHour({日付},-1)} |
{日付}は日付のフォーマットに出力された値になります。 ※詳細には上記の「日付に変換して取得」を参照する |
フォーマット:{AddHour({日付},1)} {日付}が「2023/06/30 10:30:10」の場合 ⇒ 2023/06/30 11:30:10 フォーマット:{AddHour({日付},1)} {日付}が「2023/06/30 21:30:10」の場合 ⇒ 2023/07/01 00:30:10 フォーマット:{AddHour({日付},-3)} {日付}が「2023/06/30 10:30:10」の場合 ⇒ 2023/06/30 7:30:10 |
| 日付に分を加算(減算)して取得 | {AddMinute({日付},1)} {AddMinute({日付},-1)} |
{日付}は日付のフォーマットに出力された値になります。 ※詳細には上記の「日付に変換して取得」を参照する |
フォーマット:{AddMinute({日付},1)} {日付}が「2023/06/30 21:30:10」の場合 ⇒ 2023/06/30 21:31:10 フォーマット:{AddMinute({日付},-3)} {日付}が「2023/06/30 21:30:10」の場合 ⇒ 2023/06/30 21:27:10 |
| 日付に秒を加算(減算)して取得 | {AddSecond({日付},1)} {AddSecond({日付},-1)} |
{日付}は日付のフォーマットに出力された値になります。 ※詳細には上記の「日付に変換して取得」を参照する |
フォーマット:{AddSecond({日付},1)} {日付}が「2023/06/30 21:30:10」の場合 ⇒ 2023/06/30 21:30:11 フォーマット:{AddSecond({日付},-3)} {日付}が「2023/06/30 21:30:10」の場合 ⇒ 2023/06/30 21:30:07 |
| 当日の日時を取得 | {Now()} | CSV取込およびCSV出力を実施した当日の日時を取込/出力します | フォーマット:{Now()} CSV取込/出力を実施した日時が「2023/06/30 10:30」の場合 ⇒ 2023/06/30 10:30 |
| 当日の日付のみを取得 | {Now(D)} | CSV取込およびCSV出力を実施した当日の日付を取込/出力します | フォーマット:{Now(D)} CSV取込/出力を実施した日時が「2023/06/30 10:30」の場合 ⇒ 2023/06/30 |
過去の設定事例
<CSV取込>
| 内容 | 設定方法 |
|---|---|
|
項目Aの文字列をスラッシュ付きの日付に(年/月/日)に変換して取り込む ※1桁目~4桁目が年、5桁目~6桁目が月、7桁目~8桁目が日の場合 |
{{カラムA},r:1-4}/{{カラムA},r:5-6}/{{カラムA},r:7-8}{=>} |
|
当日の日付をYYYYMMDDの形式で取り込む ※例:2025年1月15日の場合=20250115 |
{{Now()},R:1-4}{{Now()},R:6-7}{{Now()},R:9-10} |
<CSV出力>
| 内容 | 設定方法 |
|---|---|
| 項目Aの日付を当月の25日に変換して出力する | {{カラムA},d:yyyy/MM}/25 |
|
作業時間を分単位で出力する。 (小数点第一位で四捨五入) |
{ROUND({{Durations}{/}60},0)} |
| 日付を出力するときに「0:00:00」といった時間帯を除外する |
例:出荷予定日(ShipDate)から時間帯を除外 {{ShipDate}, d:yyyy/MM/dd} |
|
入荷一覧からの出力の事例: 入荷日から発注日を引いて、実際にかかったL/Tを出力する |
例:入荷日から発注日を引いて、実際にかかった日数を出力する(数値の単位が「秒」で出力されるため、/86400で日数に変換しています) ={DateDiff({{ReceiveDate},d:yyyy/MM/dd HH:mm:ss},{{OrderDate},d:yyyy/MM/dd HH:mm:ss})}/86400 |
| yyyyMMddの形式で登録されている入庫日をyyyy/MM/ddとスラッシュ付きで出力する | {{Lot},r:1-4}/{{Lot},r:5-6}/{{Lot},r:7-8}{=>} |
| 入荷日から発注日を引いたL.T算出の際に、小数点以下を繰り上げた整数表示、L.Tが21日未満の場合は無条件で21日と表示させる |
{IF({{ROUND({{DateDiff({ReceiveDate},{OrderDate}){/}86400},0)}{<=}21}, 21, {ROUND({{DateDiff({ReceiveDate},{OrderDate}){/}86400},0)})} ※入荷日が空欄にならないことが条件となります |
|
生産一覧からの出力の事例: 生産予定日が明日までの生産データのみを出力する |
条件:{IF({{PlannedDate}{<=}{AddDay({Now()},1)}},1,0)}{=>}0 条件値:1 ※明後日の場合は{IF({{PlannedDate}{<=}{AddDay({Now()},2)}},1,0)}{=>}0 |
⑥例外処理・デフォルト値設定
| 概要 | ルール | ルールの説明 | 取込例 |
|---|---|---|---|
| 固定値を取得 | 任意の文字列 | 文字列を固定値として取得する | ・フォーマット:FALSE { }が付いていない場合は固定値扱いとなり、FALSEを取得する ・フォーマット:P-{品番} 列の値が12345の場合:P-12345 ※ほかのルールと組み合わせることも可能 |
| 取得失敗した場合にデフォルト値を使用 | {{カラムA}, s:>|2}{=>}0 | 「カラムA」の値を取得できなかった場合、0を取得する | ・フォーマット:{{品番},s:>|2}{=>}0 「品番」列の値がA>1234567890>Zの場合: 1234567890 ※取得成功した場合 ・フォーマット:{{品番},s:>|3}{=>}0 「品番」列の値がA>1234567890の場合: 0 ※取得失敗した場合 |
| 例外処理で条件外は空欄にする | {{カラムA}, s:>|2}{=>} | 「カラムA」の値を取得できなかった場合、空白を取得する | ・フォーマット:{{品番},s:>|2}{=>} 「品番」列の値がA>1234567890>Zの場合: 1234567890 ※取得成功した場合 ・フォーマット:{{品番},s:>|3}{=>} 「品番」列の値がA>1234567890の場合: (空欄) ※取得失敗した場合 |
| CSV取込で上書き時に、CSVデータ上に値がない場合に既存の値を保持する | {カラムA}{KEEP} | 「カラムA」の値を取得できなかった場合、既存の値を保持する |
・処理「品番」「受注」「生産指示-工程明細」でのみ有効です。 ・「受注」のCSV取込では、通常、上書き時に、CSVデータ上に値がない場合は既存の値がクリアされますが、{KEEP}を付けて取り込んだ項目に関しては既存の値を保持できます。以下のプロパティにのみ使用できます 品番、納期、受注単価、得意先コード、得意先担当、客先注番、明細客先注番、運送会社コード、重量サイズコード、受注備考1~5、受注明細備考1~5、受注分類1~3コード、受注明細分類コード |
| CSV取込で上書き時に、CSVデータ上に値がない場合に既存の値をクリアして空欄に戻す | {カラムA}{NULL} | 「カラムA」の値を取得できなかった場合、既存の値をクリアして空欄に戻す |
・処理「品番」「受注」「生産指示-工程明細」でのみ有効です。 ・通常、「品番」のCSV取込では上書き時に、CSVデータ上に値がない場合は既存の値が保持されますが、{NULL}を付けて取り込んだ項目に関しては既存の値をクリアして空欄に戻せます。 ※現状、処理「受注」では{NULL}のフォーマット設定を有効に活用できるプロパティはありません。 |
過去の設定事例
<CSV出力>
| 内容 | 設定方法 |
|---|---|
| 品番の冒頭に「99」が含まれている場合は備考欄、そうでない場合には品名を出力する | {IF({{{品番}, r:1-2}{=}99},{備考},{品名})} |
|
樹脂加工系の事例: 取り個数を品番マスタの仕様1~5に設定して、ショット数を出力する |
{{TotalProduct}{/}{仕様1~5}}{=>} |
|
当日に作成されたデータの場合は1、それ以外の場合は0で出力する ※データの比較用などに使用 |
{IF({{CreatedOn}{>=}{Now(D)}},1,0)} |
| 拠点コードが「1」のデータだけ出力する | 条件:{IF({{LocationCode}{=}1},1,0)} 条件値:1 |
| 日付を出力するときに「0:00:00」といった時間帯を除外する |
例:出荷予定日(ShipDate)から時間帯を除外 {{ShipDate}, d:yyyy/MM/dd} |
|
入荷一覧からの出力の事例: 入荷日から発注日を引いて、実際にかかったL/Tを出力する |
例:入荷日から発注日を引いて、実際にかかった日数を出力する(数値の単位が「秒」で出力されるため、/86400で日数に変換しています) ={DateDiff({{ReceiveDate},d:yyyy/MM/dd HH:mm:ss},{{OrderDate},d:yyyy/MM/dd HH:mm:ss})}/86400 |
|
在庫一覧からの出力の事例 在庫数0のデータだけを出力する |
条件:{IF({{{StockQuantity}{>=}0}{AND}{{StockQuantity}{<=}0}},0,1)} 条件値:0 |
| yyyyMMddの形式で登録されている入庫日をyyyy/MM/ddとスラッシュ付きで出力する | {{Lot},r:1-4}/{{Lot},r:5-6}/{{Lot},r:7-8}{=>} |
| 項目Aの1桁目が6または8のデータのみを出力する |
条件:{IF({{{{項目A},r:1-1}{=}6}{OR}{{{項目A},r:1-1}{=}8}},1,0)} 条件値:1 |
| 入荷日から発注日を引いたL.T算出の際に、小数点以下を繰り上げた整数表示、L.Tが21日未満の場合は無条件で21日と表示させる |
{IF({{ROUND({{DateDiff({ReceiveDate},{OrderDate}){/}86400},0)}{<=}21}, 21, {ROUND({{DateDiff({ReceiveDate},{OrderDate}){/}86400},0)})} ※入荷日が空欄にならないことが条件となります |
| 伝票Noごとに「*」(アスタリスク)を出力したい | {IF({{DetailRowIndex}{=}1},*,)}{=>} ※DetailRowIndexのプロパティは、CSV出力設定の[仕入]と[出荷履歴]で使用できます |
| 特定の項目に値が登録されているデータのみを出力する |
備考{Notes}に値が登録されているデータのみを出力する 条件:{IF({{COUNT({Notes}|)}{>}0},1,0)} 条件式:1 |