みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
お世話になります。
■状況
マシン Mac
Filemaker Server 12
database_A.fmp12 セキュリティ:ゲストは無しで、各ユーザーはパスワードが必要
databese_B.fmp12 セキュリティ:ゲストは無しで、各ユーザーはパスワードが必要
databese_Bにあるスクリプトで、databese_Aのあるテーブルデータを定期的にすべてdatabese_Bのテーブルインポートしたいと考えています。
Filemaker Server 12 でスケジュールを作成したときにdatabese_Bのアカウントとパスワードは設定できるのですが、
databese_Aに対してはアカウントとパスワードが設定できず、スクリプトが正常に動いてくれません。
上手く設定、もしくは回避する方法はありますでしょうか。
回避策として、一旦、databese_AからデスクトップにCSVとしてエクスポートし、それをdatabese_Bにインポートするというのはできたのですが、
CSVになぜか空白行があり、それが自動で前の行の値で埋められ、全く同じ内容の行が多くできてしまって、今のところダメです。
よろしくお願いします。
「すべて」でスケジュールスクリプトなら、完全アクセスのアカウントでやったらいいのでは。
Offline
「すべて」でスケジュールスクリプトなら、完全アクセスのアカウントでやったらいいのでは。
返信ありがとうございます。
databese_Bのスクリプトをスケジュールで動かすときの アカウントは完全アクセス権なのですが、
そのスクリプトが、databese_Aに接続するときに止まります(手動で動かすと、アカウントとパスワードが要求されます)。
スケジュールで動かすときに、全データベースに対する、完全アクセス権のアカウントを使えるのでしょうか?
同じアカウントがAに登録してないのでは?
Offline
もしかしてこれでしょうか。。
Server上で公開されているファイルからのインポートは出来ないとの回答でした。
http://www.kipwmi.com/fmbbs/wwwlng.cgi? … 070033.txt
同じアカウントを用意しないと駄目でしょうね。
ただ、FMSのサーバーサイドスクリプトでのインポートには、
>指定されたファイルはすべて FileMaker Server ドキュメントフォルダ内、テンポラリフォルダ、または FileMaker Server ドキュメントフォルダあるいはテンポラリフォルダのいずれかの子フォルダ内にある必要があります。
という記述がヘルプにあり、テキストファイルのインポートのみで、ファイル関のインポートはサポートされていなかったのでは。
また、運用面で、全てのレコードを他のテーブルにインポートする運用そのものが、かなり疑問な運用方法と思いますが。
Offline
ああ。
databese_Aに対してはアカウントとパスワードが設定できず
じゃなくて、そもそも不可能なんですね。
回避策として、一旦、databese_AからデスクトップにCSVとしてエクスポートし、それをdatabese_Bにインポートするというのはできたのですが、
CSVになぜか空白行があり、それが自動で前の行の値で埋められ、全く同じ内容の行が多くできてしまって、今のところダメです。
デスクトップでなくドキュメントかテンポラリでないとだめでは?
Offline
同じアカウントを用意しないと駄目でしょうね。
ただ、FMSのサーバーサイドスクリプトでのインポートには、>指定されたファイルはすべて FileMaker Server ドキュメントフォルダ内、テンポラリフォルダ、または FileMaker Server ドキュメントフォルダあるいはテンポラリフォルダのいずれかの子フォルダ内にある必要があります。
という記述がヘルプにあり、テキストファイルのインポートのみで、ファイル関のインポートはサポートされていなかったのでは。
また、運用面で、全てのレコードを他のテーブルにインポートする運用そのものが、かなり疑問な運用方法と思いますが。
双方同じアカウントとパスワードを用意してもだめでした。
運用面ですが、仰る通りです。
現状、プロジェクト管理のデータベースと、最近動かした資金繰りのデータベースを分けてる為に、そうなっています。
とりあえず、資金繰りのテーブルは1つだけなので、それをプロジェクト管理側に入れてしまえば、インポートは同じデータベース内ですので、できそうなのですが、今は分けておきたいという次第です。
ああ。
databese_Aに対してはアカウントとパスワードが設定できず
じゃなくて、そもそも不可能なんですね。
回避策として、一旦、databese_AからデスクトップにCSVとしてエクスポートし、それをdatabese_Bにインポートするというのはできたのですが、
CSVになぜか空白行があり、それが自動で前の行の値で埋められ、全く同じ内容の行が多くできてしまって、今のところダメです。デスクトップでなくドキュメントかテンポラリでないとだめでは?
すみません書き間違えです。
"file:" & Get(ドキュメントパス) & "MRA" & ".csv"
こちらで出しているので、ドキュメントパスでした。
CSVになぜか空白行があり、それが自動で前の行の値で埋められ、全く同じ内容の行が多くできてしまって、
書き出しのないように、関連フィールドが含まれていませんか。
または、改行を含むフィールドが入っていませんか。
運用内容についてはわかりました。プロジェクト内の資金の動きを、定期的に資金繰りファイルへ反映させているのでしょうか。
Offline
scene672 wrote:CSVになぜか空白行があり、それが自動で前の行の値で埋められ、全く同じ内容の行が多くできてしまって、
書き出しのないように、関連フィールドが含まれていませんか。
または、改行を含むフィールドが入っていませんか。運用内容についてはわかりました。プロジェクト内の資金の動きを、定期的に資金繰りファイルへ反映させているのでしょうか。
書き出してるテーブルは2つあり、そのうちの1つのテーブルのフィールドは下記のような状態で、
書き出してるものは同じテーブル内にあるフィールドだけです。改行もないと思います。
ProjectNo.→ PPJ-0078
取引先→ FACTORY A
発注No.→ ODA0173
支払No.→ PYA00146
名称→ サンプル制作費
財務区分→ 支出
状況→ 確定
金額→ 41700
入出金日→ 8月7日
更新日→ 2013/8/19 20:00
運用は、プロジェクト内の資金、請求して入金するテーブルと、発注して支払するテーブルを、資金繰りのファイルに毎晩反映させたいのです。
デスクトップに保存したCSVファイルを、手動で読み込むと空白行は一杯出来てしまうのですが、重複はありません。
また手動で、fmp12ファイルから読み込んだ場合は、空白行もありません。
繰り返しフィールドは無いですか。
運用は、プロジェクト内の資金、請求して入金するテーブルと、発注して支払するテーブルを、資金繰りのファイルに毎晩反映させたいのです。
その運用ならば、資金繰りテーブルの中に、プロジェクトserialというフィールドを作ります。
プロジェクトテーブルにも同じフィールドを作り、自動入力でシリアル番号を入力させます。
そのフィールドをリレーションしておきます。(資金繰り側に新規レコード作成を許可、関連レコードの削除でレコード削除を設定)
プロジェクトテーブル側のレイアウトは、シリアル番号以外は総て資金繰りテーブルのフィールドを関連フィールドとして配置します。
これだけで、インポートという面倒な作業は回避される上に、今と同じように入力作業やプロジェクト内での集計作業などが可能です。、
プロジェクトserialを工夫するか、プロジェクト名を設定するフィールドを作り資金繰りテーブル側にプロジェクト名をルックアップさせれば、複数のプロジェクトに対応できます。
Offline
繰り返しフィールドは無いですか。
運用は、プロジェクト内の資金、請求して入金するテーブルと、発注して支払するテーブルを、資金繰りのファイルに毎晩反映させたいのです。
その運用ならば、資金繰りテーブルの中に、プロジェクトserialというフィールドを作ります。
プロジェクトテーブルにも同じフィールドを作り、自動入力でシリアル番号を入力させます。
そのフィールドをリレーションしておきます。(資金繰り側に新規レコード作成を許可、関連レコードの削除でレコード削除を設定)
プロジェクトテーブル側のレイアウトは、シリアル番号以外は総て資金繰りテーブルのフィールドを関連フィールドとして配置します。これだけで、インポートという面倒な作業は回避される上に、今と同じように入力作業やプロジェクト内での集計作業などが可能です。、
プロジェクトserialを工夫するか、プロジェクト名を設定するフィールドを作り資金繰りテーブル側にプロジェクト名をルックアップさせれば、複数のプロジェクトに対応できます。
ご教授トありがとうございます!。
プロジェクト管理側の請求して入金するテーブルと、発注して支払するテーブルには繰り返しフィールドはありません。 資金繰り側は、3ヶ月、12ヶ月の表示の為に、多くは繰り返しフィールドです。この状態でも可能でしょうか?。
どのような目的の繰り返しフィールドですか。繰り返しフィールドが計算フィールドで、そのまま集計に使うための物でしょうか。
Offline
Shinさま
資金繰りのテーブルだけ、計算フィールドと集計フィールドが繰り返しフィールドになっています。
下記のようになっています。
fnc_code
区分
大分
中分
小分類
取引先
日付
金額
口座
g_集計開始年月日日付 グローバル
年月計算 (数字)
g_年月計算 (数字) [13] 非保存
g_月_ 計算 (数字) [13] 非保存
現金金額_ 計算 (数字) [13]
s_現金金額集計 (数字) [13]
収入現金金額_ 計算 (数字) [13]
s_収入現金金額集計 (数字) [13]
支出現金金額_ 計算 (数字) [13]
s_支出現金金額集計 (数字) [13]
期末繰越計算 (数字) [13]
期首繰越計算 (数字) [13]
繰り返しフィールドは、集計のための計算フィールドだけですので、大丈夫のようです。
Offline
Shin さんありがとうございます。テストしたところ上手く行きました。これはとても楽で、インポート、削除ごとに無駄なシリアル番号も出来なくて良いです。
セキュリティも、プロジェクト側の人間は、資金繰りに対してはレコードのみの操作で、レイアウトへのアクセス権無しで運用できるようです。
あと、「資金繰りテーブルのフィールドを関連フィールドとして配置」 した場合は、プロジェクト側の今までのフィールド(金額や日付)は、どういう扱いにするのが
良いのでしょうか(移行?、残す?)
移行作業はやってしまいましたか。
過去のレコードを残しておきたいかどうかでしょう。
それらはプロジェクトテーブル側にすべてインポートされているのですよね。プロジェクト側でそのレコードを抽出して今回追加したserialフィールドに設定が可能でしたら、同じserialをプロジェクト側へ持ってくれば、新しい入力部分と同様に参照できるようになります。ここまで作業が可能ならば、同じデータがあることになり、削除してしまっても良いのでは。
Offline
Shinさま、移行作業中ですが、テストで上手く行っていましたが、本番環境でプロジェクトserialが資金繰りテーブルに反映されなくて困ってます。
■プロジェクト管理側のリレーション
プロジェクト管理テーブル→受注テーブル→請求テーブル(請求ID=プロジェクトserial)
同じプロジェクト管理テーブルから→発注テーブル→支払テーブル(支払ID=プロジェクトserial)
■資金繰り
プロジェクトserialが請求IDしか表示されず、しかも正しくないです
プロジェクト管理の請求テーブルか、支払テーブルのいづれか1つだけだと正常ですが、2つ繋げると駄目です。
プロジェクト管理テーブルのリレーションが複雑だからでしょうか?
新しいテーブルが出てきましたので、各テーブルの構成やリレーション設定、テーブル間の動きが理解できません。
基本的に、プロジェクト管理テーブルからは、受注テーブルまたは発注テーブルのみに、serial等のプロジェクトテーブル側のユニークなフィールドでリレーションするのみで動くはずですが。
Offline
どちらか1つのテーブルだけ、資金繰りテーブルとリレーションした場合は正常です。
2つつなげた場合は、一番上のプロジェクト管理テーブルでループ?してしまうので、支払テーブル 2というのが出来てリレーションするのですが、うまく動かないのです。
Shin さま
上手く行きました!。テストデータベースで同じような構造で上手く行ったので、本番でも再度やってみたところ正常に動きました。
(何を間違えていたのかは分からないのですが。。)
ありがとうございました。
Offline
[ Generated in 0.014 seconds, 10 queries executed - Memory usage: 582.37 KiB (Peak: 619.27 KiB) ]