関連サービスでの自動化

少し前に、オンラインストアの平日のトピックを読みました:なぜ製品が在庫切れですか? オンラインストアですべての商品とその価格を最新に保つことがどれほど難しいかについて。 特に、サプライヤが価格表の関連性に大きな影響を与えたい場合。 問題は確かに正しいですが、新しくて有名なものとはほど遠いです。

個人的には、技術的なデータやアドバイスがないことに戸惑っていました。 トピックのすべては、定期的にダウンロードして更新する必要があるという事実に帰着しました-そして、幸福があります。 しかし、これは理解できます。 必要なものはすべて知っています。 しかし、これを達成する方法は?

実際、これがこのトピックのトピックです。 価格やオンラインストアで作業するときに最大限の自動化を実現するためのツールです。 これにより、自分のビジネスのために多くの良い時間を節約できます。

サプライヤがいかに悪いかについての議論をスキップしましょう。 さらに悪いことです。 関連性は辛いトピックですが、私たちのものではありません。
私たちのタスクは、データがサプライヤによって更新されるとすぐに、最小限の遅延でサイトに到達するようにすることです。 これは非常に現実的です。 もちろん、即座にではなく、数分ですべてが適合します。 時間は多くの要因に大きく依存しますが。 しかし、それらについては後で。

もう1つの重要なポイント:私は、初期セットアップにのみ人間の介入を必要とし、その後の状況を制御する完全に自動化された自律「システム」について書いています。 これらのソリューションは、管理者や意思決定者の介入なしで、独自に動作し、ダウンロードして、更新します。 また、誰かが何かを忘れたり、病気になったり、やめたりすることを心配する必要はありません。 あなたはそこで何が起こっているのかさえ知らないかもしれません。 しかし、かつて設定されていたように、それは起こります。
それでは始めましょう。


Windows用の非常に便利なタスクスケジューラnnCronがあります。 私たちの場合、彼はすべてを支配する心になります。 もちろん、複雑なタスクについては、クラウンスクリプトを記述するために使用されるFort言語を学習する必要があります。 シンプルなものであれば、最小限のプログラミングスキルで十分です。 Win 2003/2008でCronタスクを設定して実行する瞬間はまだありますが、これらは微妙です。

このプランナーのすべての魅力については説明しませんが、今のところそれなしでできるなら、おそらくそれは必要ないでしょう。

たとえば、サプライヤが3時間ごとに価格を更新することがわかっている場合、これらのタスクを簡単に作成できます。
しかし、予想外に価格が更新される場合があります。 このような場合、5分ごとにダウンロードを使用します。その後、ファイルの変更を確認します。変更が発生した場合は、価格に既に新しいデータが含まれていることを意味します。したがって、サイトを更新する必要があります ちなみに、これもクラウンによって行われます。
ファイルを比較するには、crc32プラグインを使用します。

価格が郵便局に届くことがあります。

通常、これを行います。価格がメールで受信されると、価格は目的のフォルダーに自動的に保存されます。 Cronはファイルが更新されたことを確認し、変更があったかどうかを判断し、変更があった場合はサイトを更新します。

もちろん、価格のアーカイビングを監視するのは冠であるということです。 なぜ冠? なぜなら、価格表はprice.zipの形式で提供されることもありますが、内部には1つまたは複数のファイルがあり、そのたびにサプライヤーのロボットが生成する新しい名前が付けられるからです。 この場合、名前がダウンロードごとに変わるため、この価格の処理を開始することは困難です。 クラウンは、ファイルとその名前の操作に役立ちます。

一般的に、クラウンはこれをすべて行います。 完全な自動化が必要な場合は、 nnCronを使用します

また、 Windows PowerShellを使用してみました。 便利なことであり、必要なことはすべて行います。FORTを勉強する必要はありません。 しかし、Windowsでシェダラーを構成する機能には感心しませんでした。これにより、非常に柔軟にスクリプトを開始できます。 とにかく、 nnCronを使用することにしました。

価格を取得する


ダウンロードするお気に入りのコンソールユーティリティをいくつか覚えていました。 しかし、私たちの選択はwgetをWindowsに移植することです。 これは趣味の問題だと言えますが、最近のタスクの1 つではwgetだけが価格表の取得に役立ちました。 私は残りがそれをする可能性も除外しませんが。

ダウンロードプロセスは次のようになりました:ユーザーは承認ページに移動し、ログインとパスワードを入力する必要があります。その後、ユーザーはデータ検証スクリプトにリダイレクトし、すべてが正しい場合、2番目のリダイレクトはポータルインデックスページに移動します。 そこで、フォームgetprice.php(ダウンロード価格)のリンクをクリックします-再びダウンロード用のスクリプトへのリダイレクト、現在の価格の形成がそこで開始され、20秒後にphpが保存可能な完成価格を発行します。

最初の衝動は、ユーザー名とパスワード+直接リンクを使用することでした。 うまくいきませんでした。 一般に、多くの時間を費やしましたが、 wgetだけが役に立ちましたが、それを使って頭を悩ませる必要がありました。 要するに、vgetはログインし、ログインCookieを使用し、必要なものをすべてダウンロードしました。

受信の別のオプションはメールです

通常、ここには問題はありません。 メールがローカルではない場合があります。 しかし、これは原則として、POP3を介して電子メールをダウンロードするか、ローカルクライアントがすでに電子メールを取得するメールボックスに転送することで簡単に実行できます。 複雑なことは何もありません。 主なことは、メールクライアントがレターを受信するときに必要なフォルダーに添付ファイルを保存できることです。

したがって、現時点では、関連する価格をいつでも提供するシステムが必要です。 また、10〜20個のファイルをダウンロードしてチェックするのに30分を費やす必要はありません。

しかし、新しい価格を取得するだけではクールではありません。 しかし、人間の介入なしで、それらを更新することはクールです。

解析


解析は恐ろしい言葉ですが、非常に便利です。 これは、いわゆる分析と価格のインポートであり、必要なものとそうでないものを定義します。

通常、マネージャーは新しい価格を受け取った後、それをxml、csv、または単にテキストファイルに保存し、Webストアのインターフェイスを介してデータをインポートします。 そして、それは喜びになります。 しかし、全員ではありません。

価格リストに5000行あり、そのうちの3000行は余分なものである貧しい仲間がいますが、これらの3000行は1万のポジションがある2番目の価格から取られる必要があり、悪魔が彼の足を壊すようにすべてがそこに散らばっています。 また、価格を確認して修正する必要もあります。 時間または品揃えを犠牲にする必要があります。

また、サプライヤは価格表を徐々に更新していると言います。 価格の到着からサイトに到着するまで5日が経過した企業を見ました。 それは手作業で、愚かで恩知らずの仕事であり、処分しなければならないからです。

1つのソリューションは、ExcelからWebサイトにデータを転送するだけの小規模な起業家に適しています。 価格リストのポジションで何百もの操作を実行する必要がある場合でも(半分を落とし、2番目に+ 50%のマージンを追加するため)、これは価格リストで自動的に開始し、そこで何でもしたいマクロでVBAに簡単に実装されます。 それまでの間、あなたはビジネスミーティングに行きます-nnCronはあなたのために何をいつ行うべきかを最もよく知っています。

価格リストを処理した後、ストアにアンロードされます。 しかし、プロセスについては少し後で。

しかし、もしあなたが小規模な起業家でなければ、おそらく倉庫があるでしょう。 倉庫がある場合は、1C 7または8にする必要があります。 あなたはおそらくクレイジーです。 貿易では、これはかけがえのないです。 そして自動化もあります。

バージョン1Cについては説明しませんが、明確にする必要があります。これから説明するタスクについては、1s8の方がはるかに便利です。 少なくとも、これらのソリューションのほとんどの実装では、構成自体を変更する必要はありません。 自動化はそのように機能します。 ただし、1s7では、メイン構成を変更する必要がありますが、これは常に許容できるとは限りません。

基本的に価格の解析は1Cを使用して行われます。 これは1を使用して価格を曲げることができる方法に関する記事ではなく、主な機能を単に説明するだけなので、どの程度正確かについては触れません。

nnCron-処理の自動開始を提供します。 すでに述べたように、この時点であなたのオフィス全体は、企業のパーティーで歩くことができます。

処理により、価格とルールのセットが決定され、インポートが開始されます。 製品、グループなどは無視できます。 同時に、マージンを抑えて、データベース内のすべてのポジションを更新します。 さらに、必要に応じて、処理によって新しい命名法を作成できます。この命名法はデータベースにはありませんが、価格表にすでに表示されています。 これらのアイテムは数百個ある可能性があります。これにより、時間を大幅に短縮できます。 処理は、任意の数の価格を連続してインポートし、一致する記事を処理できます。 一般的に、彼女はあなたができることは何でもできますが、病気になることはなく、何百倍も速くなります。

ところで、それはこの段階の複雑さ-解析-サイトを更新する手順全体にかかる時間に依存します。 特に複雑なシステムでは、解析プロセスに約10分かかりますが、これには少なくとも1日かかります。

ただし、この記事では、インポートと価格解析の自動化に関心はなく、特にサイトで情報を取得します。 したがって、可能性と方法について-別の時間。 思い出さない限り、真の解析のために、1Cプログラマーが正規表現を使用できるようにすることをお勧めします

製品が1Cデータベースにヒットしたら、サイトにアップロードする必要があります。 実際、これは最初は興味がありました。 誰かが1Cの価格の非常に重要性に満足するでしょうが、これは実際には多くの起業家にとって非常に関連性の高いトピックでもあります。

アップロード中


サイトにアップロードするためのオプションについて話しているのはなぜですか? 実際、インターネットソリューションの開発者の多くは、製品の更新を可能にするツールの面倒を見ています。
人々がさまざまな無料のオンラインストアを使用することが非常に頻繁に発生しますが、所有者が必要とする機能を備えていない場合もあります。

ここで、「ユニバーサル」な更新方法について話している予約をする必要があります。 それらのいくつかがあります。

あなたがどんなサイトを持っているかに関係なく、あなたが実現する必要がある主なことは、その上のデータが更新されることができるということです。 問題なく製品を更新できるようにするために、オンラインストアはBitrixまたは一部のCMSスレッド上にある必要があると人々が考えることがあります。 いいえ、そうではありません。 あなたのサイトが何であるかは関係ありません-すべてを更新できます。

まず、アンロードするものが必要です。 この問題は既に解決されていると思います。 多くの場合、1から構造がサイト1に1にアップロードされるという事実に遭遇しました。しかし、状況は価格と同じである場合があります。

私に関しては、最も先史時代の愚かな更新方法は手動です。 つまり、サイトの管理パネルから更新用のファイルをインポートし、そこですべてを「更新」をクリックするだけでも、それは手動のままです。 更新は、マネージャーの健康状態と記憶力に依存します 。 そして、あなたは間違いなくこれを必要としません。

自動化には、そのようなオプションがあります。

XML、CML、CSV、および会社

これは、1sまたはExcelが必要なファイルを作成し、クラウンがそれをftpサイトにアップロードする場合のオプションです。 通常、アンロードはWindowsのwput実行します。 しかし、これは好みの問題です。

Cronは、3分ごとに更新ファイルをチェックするホスティング(インストールしたものではなく)で動作します。 それらを更新すると、データベースを更新してファイルを消去するスクリプトを起動します。 そしてまた待っています。

このようなペースで、1時間で、送信された変更の数に関係なく、価格を約10回更新できます。これがnnCronの設定方法です。 関連するでしょうか? もちろん。
このために必要なものは次のとおりです。wput 、ホスティングのcron

ベースへの直接接続

このオプションは、更新するデータの量と接続の速度に大きく依存します。 しかし、その魅力はあります。 また、ホスティング事業者は、直接接続を許可する必要があることに注意する必要があります。 これは通常、 ODBC for MySQLを介して行われます。

直接接続が指定されていない場合、おそらくssh接続は引き続き許可されます。 私たちの場合、そのように動作します。 ssh接続の場合、 puttyが使用され、次にODBCが使用されてベースへの接続が構成れます。

このようにして、Excelからサイトデータベースに直接接続し、価格表を更新できます。 そして、1Cから直接可能です。

この方法を使用して、MySQLデータベースから直接マネージャーが新しい注文を確認し、それらを1Cに直接インポートして、注文ドキュメント、消耗品などを作成します。 またその逆に、1Cでドキュメントを作成することにより、すぐに直接サイトデータベースに転送できます。

この方法で「ロボット」を実装できる場合があります。 つまり、サイトの訪問者は特定のアクション(請求書の送信など)を実行します。 ただし、請求書は1Cから正確に送信する必要があります。これは、その時点で特定のマネージャーに代わって番号を「賭け」て書き出す必要があるためです。 次のようになります。

1. mysqlでアクションレコードが作成されます
2. nnCronを使用して1Cが自動的にサイトデータベースの「アクション」を直接チェックします
3.アクションを確認すると、1C処理が開始されます。これにより、適切な人物と適切なパラメーターを持つアカウントが自動的に生成され、送信されます。

さらに、この方法では、通信コードを設定して注文を転送する際の手作業の量を減らすことにより、オンラインクライアントを1Cデータベース内の実際のクライアントと接続できます。

つまり、直接接続方式の「プラス」です。データをサイトから直接読み取り、デポジットして戻すことができます。

ただのssh

直接接続が必要ない場合は、 puttyセットのユーティリティを使用して、 ssh接続を介してファイルを転送できます: pscp 。 さらに、このユーティリティを使用すると、サーバーからファイルを受信できます。
これはftp接続のもう1つのオプションであり、何らかの理由でデータベースへの接続がない場合でも機能します。

次に、 plinkユーティリティを使用して、 必要な処理を実行するサイトでリモートスクリプトを実行できます。
しかし、これは他に何も役に立たない特別な場合のためにすでに「倒錯した」方法です。

価格を更新する


さて、データベースを更新したので、価格も更新する必要があります。 問題があります-ただ吐き出します。 あなたがサメのビジネスではない場合、エクセルのVBAはあなたのために新しい価格を形成します。 そして、サメの場合、1Cはあなたの選択、画像、肖像の複雑さの価格表を提供する必要があります。

その後、すべてがアーカイブされ、 wput / pscpを使用してサイトにスローされます。 そして、ご存知のように、 nnCronはすべてを管理します:アーカイブ、チェック、アップロード。

オンラインストアと関連性


このような開発により、サイトデータベースを常に最新の状態に保つことが可能になります。 さらに、1Cを使用する場合、価格表の可用性だけでなく、少なくとも10の倉庫の物理的な可用性も更新できます。
したがって、各製品で、価格表にある場合にステータスを「注文可能」にすることができます「在庫あり」 -商品が物理的に在庫にある場合。 数量と倉庫を指定することもできます。 一般的に、想像することしかできないすべてが可能です。 主なことは、すべてを正しく整理することです。

プロセス


概略図は次のようになります。

1. nnCronは、たとえば10分ごとに価格をダウンロードします。
2.これが新しい価格表であるか古いバージョンであるかを確認中です。
3.新規の場合-nnCronは1Cで処理を開始して、価格をデータベースにインポートします。
4. 1Cは価格を解析し、そのベースにインポートします。
5.その後、処理が開始され、MySQLオンラインストアの挿入ファイルが作成されます。可用性、倉庫、新製品、価格-一般に、必要なものすべて。
6.ファイルを作成すると、サーバーに自動的にアップロードされます。
7.サーバー上のファイルを更新すると、cronを使用してホスティング上のスクリプトがデータベースを新しいデータで更新します。
または、6と7の代わりに、MySQLデータベースに直接接続し、1Cから直接更新することもできます
8. 1Cは、必要なパラメーターを含む.xls価格ファイルを作成します。
9. nnCronは、価格が更新されたというシグナルを見て、それをサーバーにアップロードします。

幸せには何が必要ですか?


このようなプロセスには、次のツールが役立ちます。

1. nnCronは強力なスケジューラです。 +できればフォート言語の知識。 Windows Power Shellも使用できますが、これはスケジュールに「難しい」要件がない場合です。
2. wget-ファイルのダウンロード
3. wput-ファイルのアップロード
4. putty - sshクライアント。 +関連ユーティリティpscp、plink
5. ODBC Connector for MySQL - MySQLへの接続を設定します
6. 1C8 / 1C7-貿易および倉庫会計の幸福のため。
7. Blat-コンソールメーラー。 彼の話はありませんでしたが、役に立つかもしれません。
8. AutoIt-複雑なタスクを自動化してから、exeにコンパイルします。 このような機会を提供しないプログラムで自動化を使用する場合に特に役立ちます。

このセット全体により、すべての自動化が問題なく動作します。 価格表は常に時間通りに更新され、可用性は常に関連します。 また、価格の更新からデータベースの更新まで、1〜2時間ではなく、数分かかります(価格がいくらあっても関係ありません)。

そして、ワークフロー全体は、信頼できないと知られている人々に依存しません。 誰かが忘れてしまった、時間がない、病気になった、傷ついたなど、心配する必要はありません。すべてうまくいきます。 これらのスクリプトはすべて、弱いリンク(男性)を削除するように設計されています。

ヒューマンファクターが私を悩ませ始めたので、私はかつてオートメーションについて疑問に思いました。 彼は関連性の主な障害です。

これらすべての情報が適切なソリューションと方法を求めてくれることを願っています。 これらは単なるツールです。 作業の大部分はまだあなたのものです。

ビジネスで頑張ってください!

Source: https://habr.com/ru/post/J111976/


All Articles