CSV取込/出力の設定方法

  • 更新

SmartFは、外部システムとの連携や集計業務のためにCSVデータの取込/出力に対応しています。

本ページでは、CSV取込/出力の設定方法について紹介します。

※各画面の概要やボタンの操作方法については以下のページをご確認ください。

画面遷移

  1. MAIN MENUで[設定]を選択します
  2. 設定メニューで[CSV取込設定]または[CSV出力設定]を選択します

CSV取込のヘッダー設定/詳細設定

2024-02-29_14h16_37.png

表示位置 名称 説明 仕様/備考 関連リンク
ヘッダー設定 処理 どの情報を取込むか選択します ・選択した処理に応じて詳細設定欄の表示内容が異なります
・各処理で取込時に必須の項目は、詳細設定欄で赤線付きで表示されます
 
ヘッダー設定 フォーマット 取り込みフォーマットを選択します    
ヘッダー設定 デリメータ カンマ区切りは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

・並び変えたい項目のプロパティ名とASC/DESCの間に半角スペースを入れます
※プロパティ名には Code や Name のようにSmartF上のプロパティ名を指定する必要があります
 (SmartF上に取り込まないデータでは登録不可です)

※DeliveryDate ASC,Code ASC のようにカンマを使って複数条件を設定することも可能です
 (納期順→品番順のようなイメージです)

 
ヘッダー設定 パス 自動取込ツールの利用時に取込元として指定するフォルダを設定します 自動取込ツールでのみ表示される設定項目です。取込元として指定したフォルダを常に監視しており、そのフォルダ内にCSVデータが保存されると自動で取込を行います。 SmartF自動取込ツール
ヘッダー設定 差分のみ取込 チェックを入れると、直前に取り込んだCSVデータとの差分のみを取り込みます データ量が多いなどの理由で取込に時間がかかる場合に、パソコンへの負荷を下げるために使用します

例:外部で管理している品番マスタに更新があり、SmartFの品番マスタに取り込みたいが、外部システムの都合で品番マスタは全出力しかできない場合
→前回取り込んだ時から変化があった品番の差分を抽出し、変更分だけを取り込むことが可能です

SmartF自動取込ツール

CSV取込設定の「差分のみ取込」で、オン/オフでの挙動の違い

ヘッダー設定 リトライ回数 CSVデータの自動取込に失敗した場合に再度取込する回数(時間)を設定します 自動取込ツールでのみ表示される設定項目です。 SmartF自動取込ツール
ヘッダー設定 新規:エラー 品番マスタのCSV取込時に、新規の品番が含まれている場合にエラーを出して取り込まないようにするかを設定します

・処理で「品番」を選択している場合にのみ表示されます

・既存のマスタ情報を更新するための専用フォーマットに対してチェックを付けておき、新規品番が含まれていると取り込まないようにすれば、間違った品番が取り込まれるのを防ぐことができます

 
ヘッダー設定 未指定分空欄 チェックを入れると、CSV取込設定でフォーマットを登録していない項目は空欄として取り込みます

・チェックを外した場合、CSV取込設定でフォーマットを登録していない項目は空欄に上書きされず、もともと値が登録されていた場合はその値がそのまま保持されます

※未指定分空欄は、処理「出荷」「生産指示-工程明細」でのみ設定可能な項目です

 
詳細設定 プロパティ名 SmartFの画面上に表示されている各種のデータの、プログラム上の管理名称です。 この一覧に表示されているデータであれば、SmartFにて取込を行うことができます。
例:Code:会社のコード、Name:会社名、Notes:備考
 
詳細設定 フォーマット 上述の「ヘッダー種別」の選択によって入力方法が異なります。
また、いずれの場合も入力する際は値を{ }を使用して囲むように入力します。

①ヘッダー名:ヘッダーの列に名称が割り振られている一覧形式のCSVファイルを取り込む場合はです。{ } と 列の名称を入力します。
例:{コード}、{備考} 等

②ヘッダー位置:ヘッダーの列の名称が順番で構成されている一覧形式のCSVファイルを取り込む場合です。
CSVデータ内の指定したヘッダー位置の列を入力します。
例:{2}、{3} 等 

※ヘッダー位置は0から数えます。

※複数データの結合や、一部のみの抜粋、固定値の取り込みといった複雑な取り込みにも対応しています。詳細はCSV取込/出力の設定方法をご参照ください。

 

CSV出力のヘッダー設定/詳細設定

2024-02-29_14h17_28.png

表示位置 名称 説明 仕様/備考 関連リンク
ヘッダー設定 処理 どの情報を出力するか選択します ・選択した処理に応じて詳細設定欄の表示内容が異なります  
ヘッダー設定 フォーマット 出力フォーマットを選択します 標準フォーマット(StandardFormat)で詳細設定を空欄にしておくと、すべての項目が出力されます ※ただし、項目名はすべて英語で出力されます。  
ヘッダー設定 デリミタ カンマ区切りはCSV、タブ区切りはTSVを選択します    
ヘッダー設定 ヘッダーあり

チェックを入れると、CSVデータの1行目にヘッダー名を挿入して出力します

チェックがない場合は1行目からデータが出力されます

   
ヘッダー設定 エンコード 出力するCSVデータの形式を選択します 以下のエンコードに対応しています
①UTF-8
②Shift-JIS
③Unicode
④ANSI
 
ヘッダー設定 条件 特定の条件に合致するものだけを出力することができます。
条件を入力する際は{ }を付けて入力します。

例:{Code}と入力すると、コードが下記の「条件値」に合致するものだけを出力します。

※条件に合致するデータがない場合、PCアプリの場合は「条件に一致するデータがありませんでしたので、ファイルを出力していません。」というメッセージが表示されます。自動取込/出力ツールの場合は「エラー. データがありません。」というログが残ります。

PC:入出庫履歴のCSV出力で取消済みの履歴データを対象外にする
ヘッダー設定 条件値 条件値を入力します。 3と入力があれば、上記の「条件」と合わせて「コードが3の行だけを出力することができます。  
ヘッダー設定 ソートカラム CSVデータ内の特定の項目を昇順/降順に並び替えてから出力することができます。

設定方法は以下の通りです。
・昇順に並び替える場合:プロパティ名 ASC
・降順に並び替える場合:プロパティ名 DESC

・並び変えたい項目のプロパティ名と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自動取込ツール
ヘッダー設定 出力 全データを出力するか、直近の出力時から更新されたデータのみを出力するかを設定します

※自動出力時にのみ適用される設定です

※一部の処理では設定欄が表示されません
・全データを出力する(全数に設定)とタイムアウトエラーになる可能性が高いため、基本的には更新分にチェックを付けることを推奨します

SmartF自動取込ツール

CSV自動出力の対象データ範囲を設定する

ヘッダー設定 出力期間 出力項目が全数に設定されている場合に、データ更新日時をもとに出力期間を設定します ※自動出力時にのみ適用される設定です
・出力項目が全数に設定されている場合にのみ有効になります

SmartF自動取込ツール

CSV自動出力の対象データ範囲を設定する

ヘッダー設定 選択 「在庫予定」の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取込で設定するヘッダー名を設定します。

CSV取込出力の設定方法6.png

 

2.CSVデータの調整

①取込対象のCSVデータのヘッダーに、CSV取込設定のフォーマットで設定した名称を設定します。

②チェックをONにする場合はTRUE、もしくはTrueをCSVに設定し、チェックをOFFにする場合はFALSE、もしくはFalseに設定します(CSV出力時には「True/False」で出力されます)

フォーマット設定例の「固定値を取得」を使用すれば、CSVデータ内で都度指定しなくても常時「TRUE」か「FALSE」を設定できます。

CSV取込出力の設定方法7.png

3.CSVデータの取込

CSV取込を実行すると、設定した項目のチェックボックスに指定通りのON/OFFが反映されます。

CSV取込出力の設定方法8.png 

 

操作方法

1. ヘッダー設定で、処理フォーマットを選択します。

CSV取込,出力の設定方法3.png

2-1. 出力する項目を削除する場合は、削除したいプロパティを選択し、[ - ]をクリックします。

2-2. 出力する項目を追加する場合は、追加したい行の上の行を選択し、[ + ]をクリックします。

3. プロパティの名称を入力し、フォーマットを設定します。フォーマットには「{ }」(半角波括弧)で取込/出力する項目を囲ってください。

CSV出力設定では、[ i ]をクリックすると使用できるプロパティのリストを一覧で確認できます。

CSV取込,出力の設定方法4.png

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桁の場合はそのまま
3桁の場合は2~3文字目、
4桁の場合は3~4文字目を指定

区切り文字により列内の値を取得 {{カラム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}{=>}
「生産納期」列の値が20210115の場合: 2021/01/15
※取得するデータリストに空欄を含む場合や、スラッシュで区切られた日付に変換する場合は末尾に{=>}が必要です
 

フォーマット②:{{生産納期}, d:YYMMDD} ⇒231129

日付のフォーマットは以下を参考にしてください。
yyyy →年
MM →月
dd  →日
HH  →時間(24:00フォーマット)
hh  →時間(12:00フォーマット)
mm  →分
ss   →秒

日付に年を加算(減算)して取得 {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

この記事は役に立ちましたか?

3人中3人がこの記事が役に立ったと言っています

他にご質問がございましたら、リクエストを送信してください