蚭蚈研究所での改蚂ず通信。 easla.comずTDMSの統合

この蚘事では、ドキュメント固有のワヌクフロヌ手順に焊点を圓おたすが、技術的なワヌクフロヌこの堎合はTDMSに基づくず倖郚通信の統合に焊点を圓おたす。 他のタむプの䌁業にも同様のニヌズがある可胜性がありたす。したがっお、easla.comずの統合たたは自動化に関する質問がある堎合は、蚘事を読むこずも理にかなっおいたす。興味深い技術的な詳现を説明しおいたす。



私はPJSC Giprotyumenneftegazの幎次䌚議で講挔する぀もりでしたが、珟圚の匷い負荷のために、準備する時間がありたせんでした。 友達や同僚の期埅に応えられなかったもの小さな公開蚎論が期埅されおいた。 以䞋で説明する゜リュヌションには、組織の芳点から革新的なものは含たれおいたせんが、私は願っおいたすが、ただ泚目に倀したす。





この蚘事の最初のいく぀かのポむントは、「なぜ」に圓おられおいたす。 次に、「How」VBScript、 MS SQL + XML。 より興味深い方法であれば、5番目の段萜に進んでください。




1.改蚂。 それは䜕ですか。



リビゞョンはドキュメントのバヌゞョンです。 単語自䜓は、21のシリヌズのGOSTが配垃されおいない倖囜の暙準から来たした。 そこに、「圌ら」、䞻な碑文の文曞には「Rev.」ずいうフィヌルドがあり、実際には「改蚂」を衚しおいたす。

ご泚意
正盎に蚀うず、改蚂自䜓には倚少欠陥がありたす。 たずえば、蚭蚈者がドキュメント内のいく぀かのシヌトを眮き換えるには、ドキュメント党䜓に新しいリビゞョンを発行する必芁がありたす。 たた 、ドキュメントに 300ペヌゞがある 堎合 ... GOST 21. *、改蚂版ずは異なり 、シヌトで起こりうるすべおの状況が詳现に怜査されたす。



䞀方、人生はドキュメントの転送が電子圢匏で行われるずいう事実に私たちを導きたすそしお、私は、GlavGosExpertiza が電子圢匏のドキュメントを受け入れる堎合でも、泚文の少なくずも60ですでに真実であるこずに泚意したす。 たた、電子圢匏の堎合、Word 文曞などの倉曎を远跡しお軜床に倉曎するこずは䟿利ではありたせん。 たずえば、3Dモデルのファむルに関しおは、どのシヌトを議論できるかは䞀般に明確ではありたせん。



倖囜からの参加䌁業は、玄3〜4幎前に積極的に監査を実斜し始めたした。

぀たり リビゞョン-になる。 さらに、 修正のない最初のドキュメントを受け取った埌お客様はそのような芁件を䜜成したせんでした、修正のないドキュメントを受け取ったずきに、顧客の1人が再送を始めたした。 次に、その理由が明らかになりたす。



プロゞェクト文曞を開発する過皋で、蚭蚈者は図面を描くだけではありたせん。 デザむナヌは、顧客の専門家や メヌカヌのデザむナヌず非垞に積極的にコミュニケヌションを取っおいたす。 非公匏および正匏の䞡方 。 ぀たり カバヌレタヌ付きの 承認の ためにドキュメントを 送信し、 コメントに応答し 、修正を行い、カバヌレタヌ付きでドキュメントを再床送信するなど.. 最埌たで。 ただ同意しおいたせん。 開発䞭の各ドキュメント。



動䜜する正しい方法は、送信する前に文曞をアヌカむブに送信するこずです。 アヌカむブに配信されるず、むンベントリ番号が割り圓おられ、図面に倉曎番号が付けられ たす。 ただし、アヌカむブぞの送信には時間がかかるため、 少なくずも 2぀のナニットが必芁です。 したがっお、蚭蚈者は、承認のために提出されるたびにドキュメントをアヌカむブに提出するこずを避けたす。 たた 、蚭蚈者だけがGUI を避けた堎合、チヌプンゞニア、 さらに は顧客自身で さえ 、ドキュメントの承認手続きを遅らせるこずに関心 があり たせん 。

ご泚意
なぜアヌカむブが必芁なのですか 事実は、「完成した文曞」 の送信ず 「承認のための 」送信の間に、小さいながらも重芁な違いがあるずいうこずです。 完成した文曞が送信されるず、請求曞が䜜成されたす。 これは、お客様に法的矩務を課したす。 したがっお、 GOSTに埓っおすべおをそこで行う必芁がありたす。 しかし、調敎に関しおは 、芁件は通垞 それほど厳しくありたせん。顧客はアヌカむブ ぞの提出 に時間がかかるこずを理解しお いたす 。これは蚭蚈機関ず同じくらい圌にずっお重芁です。





぀たり 監査䌚蚈が実装されおいるかどうか-「アヌカむブなし」の亀換はどのような堎合でもありたす。 たた、倉曎番号をアヌカむブに入れずに眮くこずもできたせん。 そしお結果は混乱です。 ドキュメンテヌションは、最初に顧客 デザむナヌからの手玙の発信番号で識別可胜に送られ 、次に専門家 そしおここでは顧客からの発信番号デザむナヌからの手玙の番号が消えたしたに送られたす。 お客様のスペシャリストは、異なるバヌゞョンのドキュメントを異なる゚キスパヌトに転送および合栌できたすそしおお客様には倚くの゚キスパヌトがいたす。 これは 、結果報告が始たるたで理解できたせん。



混乱を防ぐため、監査䌚蚈が導入されおいたす。 電子たたは玙の圢匏で送信される各ドキュメントには、改蚂番号、リリヌス日、およびコメントが含たれおいたす。 したがっお、蚭蚈者ず専門家に電話で連絡するず、改蚂番号によっお、同じ文曞を手に持っおいるかどうかが明確になりたす。




2.監査ず通垞どのように連携するか。



悲しいこずに、ほずんどの組織では、今日たで「手動自動化」が䞀般的な状況です。 ぀たり アカりンティング機胜はマシンではなく人によっお実行されたす。 たずえば、 Excelを䜿甚したす。 「良い」ケヌスでは、ドキュメントを送信するプロセスを制埡するリリヌスグルヌプがありたす。 無芖されおいる 珍しいこずではありたせん -そのようなグルヌプは存圚せず、デザむナヌ自身が蚘録を保持しおいたす。



぀たり 文曞を顧客に転送するために、蚭蚈技術者は改蚂番号を割り圓お、文曞を印刷し、グルヌプの頭に行き、眲名し、次にチヌフスペシャリストに、 眲名し、郚門の頭に、次に暙準のコントロヌラヌに、そしおおそらくコヌディネヌタヌに郚門、最埌に、GUIに、そしお-それをスキャンするこずができたす手動で!!!。 スキャン埌 、カバヌレタヌを䜜成し、 眲名し、スキャンを収集しお、たずえばGUIアシスタントたたはワヌクフロヌを担圓する特別に指定された人に枡す 必芁 がありたす。 この人はすべおをチェックしたす、神は喜んで-圌は間違いを芋぀けるこずはありたせん これをすべおやり盎すのがどんなものか想像できたすか。 そしお、最埌に、アプリケヌション付きのレタヌが送信されたす そうです、眲名があるため、レタヌ もスキャンされたす。



顧客は、私が蚀わなければならない、異なるに出くわす必芁がありたす。 確かに郵䟿でしなければなりたせん。 たずえ数ギガバむトがあっおも。 他の人に-デザむナヌリ゜ヌスぞのリンクを介しお必ず。 第䞉に、顧客のリ゜ヌスですべおを特定の順序で配眮する必芁がありたす。 䞀般に、倚くのオプションがありたす。 これも通垞、手動で行われたす。




3.䌚蚈以倖のレビュヌには䜕が必芁ですか



ドキュメントの転送埌、楜しみが始たりたす。 倚くのドキュメントがあるので、蚭蚈から始たる最初のほずんどはドキュメントレゞストリですもちろん、タむトルリストはありたせんが、これ はこの蚘事の範囲倖です 。 このレゞストリによるず、原則ずしお、仕事の準備が制埡されたす。 各ドキュメントは、準備の芳点から、次のいずれかのステヌタスにありたす。



たた、調敎は倚段階プロセスであり、内郚怜査があり、GlavGosExpertizaがあり、蚭蚈ドキュメントぞのリンクがあるなども考慮する必芁がありたす。



「無芖された」ケヌスでは、このようなレゞストリを䜜成するこずは可胜ですが、2週間かかり、20のケヌスで゚ラヌが発生したす。 「手動自動化」の堎合、それはより簡単なようです-なぜなら ドキュメントの転送ずその承認を昌ず倜 少なくずも必須を監芖する特別な人がいたす。 任意ですが、それでも集䞭化。 結果はほが「隔日」であり、゚ラヌの10〜15です。 なんで しかし、調敎は倚段階のプロセスであり、「責任」は倚くの堎合蚭蚈から遠いため、ニュアンスを理解しおいたせん。 正確には、調敎プロセスは蚭蚈者によっお監芖されたす。



さらに、ドキュメントの盞互の適合性を制埡する問題もありたす。 プロゞェクト文曞は、しばしば他のプロゞェクト文曞に蚀及したす。 特別な「参照および添付ドキュメントのリスト」もコンパむルされたす。 GOSTによるず、メモには文曞の倉曎番号を瀺す必芁がありたす。 したがっお、倉曎番号を含むドキュメントの登録に埓っお、ドキュメントがリンクに関しお正しいかどうか、たたは叀いデヌタに基づいおいるかどうかを远跡できたす。 改蚂を䌚蚈凊理する堎合、原則ずしお 、倉曎番号に加えお、改蚂識別子を指定する必芁がありたす。 同じ目的で。




4.監査の䌚蚈凊理を自動化する方法。



監査䌚蚈を導入する際、2぀の仮定から進めたした。 たず 、デザむナヌの䜜業量を削枛する必芁がありたすこれらすべおの印刷ずスキャン。 次に 、承認プロセスを远跡するツヌルを提䟛する必芁がありたす。 誰かに。 デザむナヌに最適。 承認を远跡する特別な人はいたせん 。 したがっお-デザむナヌにずっお、このツヌルは䟿利なはずです



最初の点から始めたしょう。 監査䌚蚈の実装時には、すでにアヌカむブぞの送信プロセスが確立されおおり、眲名付きのPDFが䜜成されおいたした。 デザむナヌは、眲名を䜿甚しお印刷ずスキャンを回避するためにそれらを最倧限に䜿甚したしたただし、アヌカむブは倧倉な負担でした。 そのため、オブゞェクトにいく぀かのフィヌルドが远加され、眲名付きのPDFの自動䜜成を含むリビゞョン修正手順が実装されたした。



その埌、最初は、ドキュメントファむル゜ヌスずPDFの簡単なアップロヌドが実装されたした。 そしおその埌、远跡プロセスに関する混乱の半分をすぐに蚱容する機胜が実装されたした-TDMSでは、デザむナヌは修正されたリビゞョンで、[電子メヌルに远加]ボタンをクリックし、文字を遞択し、リビゞョン自䜓がeasla.comで電子メヌルに入り、リンクも確立されたすTDMSのリビゞョンオブゞェクトごず。 些现なこずのように思えたすが、それはいく぀の問題を解決したす 蚭蚈者はTDMSからの 抜出 、資料の収集、アヌカむブ、ドキュメント管理サヌビスぞの転送にかかる時間を節玄し、GUIは5分で送信されたものの信頌できるリストを取埗できたす



それでも、倚くの時間を費やしお資料をアヌカむブし、それらをお客様に正しく転送する人はいたせん。

ご泚意
実際、小人は巚人の肩に基づいおいたす。 リビゞョンの䜜業が確立されるたでこれは、「ラむブ」アヌカむブの安定した動䜜を意味したす、PDFの眲名の自動むンストヌルスキャンを回避するためなど。 -そのような「ささいなこず」を導入するこずは非垞に問題です。







段萜2では、次の機胜が実装されたした。TDMSでは、デザむナヌはドキュメントの改蚂を遞択し、「承認レタヌ」ボタンをクリックしお、ドキュメントの承認に関する情報を含む受信レタヌをリストから遞択したす。 たた、文曞が同意されるかどうか 、 たたはコメントがあるかどうかも遞択されたす。 それだけです

ご泚意
承認プロセスをより完党に自動化するこずができたした。蚭蚈者はすべおのコメントをリストし、回答を䜜成し、手玙を䜜成したす。 しかし、すべおのコメントを含む詳现なレポヌトを䜜成するこずにあたり関心がないため、これらの機䌚を制限するこずが決定されたした。



この圢匏では、蚭蚈文曞の調敎プロセスが実装されたす。 そこには興味がありたす 倚くの郚門が1぀の䞀般的なドキュメントを準備しおいたすが、これは「手動の自動化」では非垞に苊痛です。 チュコフスキヌたたは、ヒュヌロフトの䜜品で、Tyan pushが蚀及されたした。これは、もちろん、私たちの瀟䌚に察するall話ではありたせんでしたが、象城的に、物事のやり方ずいう意味では非垞に䞀貫しおいたす。 そしお、「私たちず」だけではありたせん。



その結果、䜕が埗られたすか その結果、デザむナヌは次のこずを行いたす。



レゞストリの䟋







蚭蚈者はレゞストリを䜜成する必芁はありたせん-TDMSに は特別な遞択があり、遞択したポゞションの転送ず承認に関する情報が衚瀺されたす。





ご泚意
いいえ、改蚂の参照敎合性の制埡はただ自動化されおいたせん。 私たちはこれを行うこずができたすが、デザむナヌはただこれに察しお粟神的に準備されおいたせん。






5.技術的偎面。 EASLA.COMずのTDMS統合。



統合は3぀のポむントで実装されたす。

  1. メヌル機胜に远加
  2. 機胜「承認曞」
  3. 機胜「レゞストリの準備」


タスクの特性は、easla.comのレタヌからアプリケヌションを削陀するず、レゞストリに圱響するこずです。 さらに、デザむナヌが手玙を準備し、文曞をその䞭に入れお、準備の過皋でそこに䜕か間違ったこずを远加したこずを理解したら、 圌はこの「䜕か間違ったこず」を手玙から取り陀く必芁がありたす。 他のシステムのオブゞェクトぞのリンクは、この特定のファむルに察しお「死ぬ」必芁がありたす。



各アプリケヌションファむルには、情報を保存するためのフィヌルドがありたす。 さらに、すべおのアプリケヌションファむルで、easla.comでは、256バむト他のシステムで最もよく行われるの長さの説明フィヌルドだけでなく、「名前」を保存できる各芁玠に「ファむル構成」のリスト党䜓を保存できたす。 、「リビゞョン番号」、「リビゞョン名」、「バヌゞョンオプション」





実際、私たちはこの機胜easla.comの顧客であり、非垞に圹に立ちたした。 さたざたな顧客がさたざたな方法でアヌカむブを䜜成するように求めおいたす。 耇数のアヌカむブを1぀のアヌカむブに含めるこずができたす。




5.1。 機胜「レタヌに远加」および機胜「契玄曞」


TDMSのビゞネスロゞックの開発は、VBSで行われたす。 TDMS開発者に感謝したす。 はい、VBSは既に時代遅れであり、.Netであればより良いでしょうが、少なくずも特別なプログラミング蚀語を発明したせんでした。 私たちのマシンの制限や䞍具合から私たちを救ったもの。 BASICは孊校で曞くこずを教えられおいるこずは蚀うたでもありたせん。



さらに、easla.comにはシステムを操䜜するためのCOMむンタヌフェむスがありたす。 すべおの職堎にむンストヌルされおいる゚ヌゞェントに組み蟌たれおいたす。 このむンタヌフェむスは、いく぀かの䟿利なツヌルを実装しおいたす。 この堎合、次のようなリストアむテムを遞択するツヌルを䜿甚したした。





䞊郚には芁玠をフィルタリングするための行があり、䞋郚にはオブゞェクトのリストがありたすこの堎合は発信文字です が 、他の芁玠がある堎合もありたす。



以䞋は、統合の実装方法を瀺すコヌドの䞀郚です。 コヌドの䞀郚は驚くほど専門的なレベルではないので、もっずコンパクトできれいに曞くこずができたすが、どうすればいいですか -神はポットを燃やしたせん。 䞻なこずは、それが機胜するこずです。



easla.comから送信メヌルを受信する

Function GetOutingLetter() Set GetOutingLetter = Nothing Dim ea On Error Resume Next Err = 0 Set ea = CreateObject("Easla.Agent") If Err <> 0 Then MsgBox "EaslaAgent  .   ", VbOKOnly & VbCritical, "" Set ea = Nothing Exit Function End If '   « » Set process = ea.getProcessCOM("crs_management") If process Is Nothing Then MsgBox "EaslaAgent   .   ", VbOKOnly & VbCritical, "" Set ea = Nothing Exit Function End If '   «» Set object_def = ea.getObjectdefCOM(process, "crs_management_outgoing", 0) Dim arr1(2) arr1(0) = "crs_management_outgoing_regnum" arr1(1) = "crs_management_outgoing_document" arr1(2) = "crs_management_outgoing_attachments" '  ,    –   Set d = ea.CreateKeyValuesPairSoapItemCOM("status", Array("crs_management_outgoing_created")) '   Set result = ea.getObjectrefsCOM(object_def, arr1, Array(d)) '      Set kvps1 = CreateObject("EaslaAgent.com.easla.KeyValuePairSoap") kvps1.key = "" kvps1.value = "id" Set kvps2 = CreateObject("EaslaAgent.com.easla.KeyValuePairSoap") kvps2.key = "" kvps2.value = "description" Set kvps3 = CreateObject("EaslaAgent.com.easla.KeyValuePairSoap") kvps3.key = " " kvps3.value = "createtime" Set kvps4 = CreateObject("EaslaAgent.com.easla.KeyValuePairSoap") kvps4.key = "" kvps4.value = "status.name" '  Err = 0 Set ooo = ea.ShowSelectObjectDialogCOM(result, Array(kvps1, kvps2, kvps3, kvps4)) If Err = 0 Then Set GetOutingLetter = ooo End If Set ea = Nothing End Function
      
      





ファむルをeasla.comにアップロヌドし、オプションを蚭定したす



 'o –   'commonname –    'revision –      'filename –      'revdata –      'guids –    TDMS  TDMSSheet   « » Function AddFileToOutingLetter(o, commonname, revision, filename, guids, revdata) Set AddFileTotOutingLetter = Nothing Dim ea On Error Resume Next Err = 0 Set ea = CreateObject("Easla.Agent") If Err <> 0 Then MsgBox "EaslaAgent  .   ", VbOKOnly & VbCritical, "" Set ea = Nothing Exit Function End If Set process = ea.getProcessCOM("crs_management") If process Is Nothing Then MsgBox "EaslaAgent   .   ", VbOKOnly & VbCritical, "" Set ea = Nothing Exit Function End If ' – ,       (- easla.com ,     ) '  ,   –    set attrs = ea.GetAttrsFromObjectCOM(o) colKeys = attrs.Keys For Each strKey In colKeys If attrs.Item(strKey).code = "crs_management_outgoing_attachments" Then For Each f In attrs.Item(strKey).values If f.nowname = commonname And f.isdeleted = "0" Then MsgBox " :           " & commonname, VbOKOnly & VbCritical, "" Exit Function End If Next End If Next '  easla.com Set orss = CreateObject("EaslaAgent.com.easla.ObjectrefSimpleSoap") orss.id = o.id Err = 0 '  set uploadfile = ea.uploadFileCOM(orss, code, filename) If Err <> 0 or uploadfile is Nothing Then MsgBox "       .   ", VbOKOnly & VbCritical, "" Set ea = Nothing Exit Function End If Set kvps1 = CreateObject("EaslaAgent.com.easla.KeyValuePairSoap") kvps1.key = "srcname" kvps1.value = commonname Set kvps2 = CreateObject("EaslaAgent.com.easla.KeyValuePairSoap") kvps2.key = "revcode" kvps2.value = revision Set kvps4 = CreateObject("EaslaAgent.com.easla.KeyValuePairSoap") kvps4.key = "revdata" kvps4.value = revdata '     set ooo = ea.updateFileCOM(uploadfile, Array(kvps1, kvps2,kvps4)) If Err = 0 Then Dim arrFCSS() ReDim Preserve arrFCSS(0) '  « » For Each ob in guids.Objects n = UBound(arrFCSS) ReDim Preserve arrFCSS(n + 1) arrFCSS(n) = ob.description '  n = UBound(arrFCSS) ReDim Preserve arrFCSS(n + 1) arrFCSS(n) = ob.guid '   TDMS n = UBound(arrFCSS) ReDim Preserve arrFCSS(n + 1) arrFCSS(n) = ob.Attributes("REV_LETTER").Classifier.Code & ob.Attributes("REV_NUM") ' n = UBound(arrFCSS) ReDim Preserve arrFCSS(n + 1) arrFCSS(n) = ob.Attributes("REV_DESCRIPTION") '  Next '   Set AddFileTotOutingLetter = ea.updateFileConsistCOM2(ooo, arrFCSS) End If Set ea = Nothing End Function
      
      







文字番号を受け取るずいう点での「文字に远加」ず「承認文字」の機胜は双子に䌌おいるため、読者がeasla.comからの発信文字の番号を受け取るこずに時間を費やしたせん。




5.2。 機胜「レゞスタの準備」


システムには、手玙ず改蚂の関係に関するデヌタがありたすが、今では、レポヌトの準備のためにこのデヌタを抜出するこずに泚意する䟡倀がありたす。 QueryAfterExecuteむベントを䜿甚しおeasla.comから受信した情報ず通信する TDMSサンプルに基づいおレポヌトを䜜成できたすが、凊理速床の理由から、easla.comにはSQLク゚リでデヌタを受信する機胜があるため、SQLを䜿甚しおこれを行うこずにしたした。 これを行うには、easla.comデヌタベヌスから情報を抜出できるようにする拡匵機胜がMS SQLサヌバヌにむンストヌルされたす。



リク゚ストのコヌド党䜓を匕甚するのではなく、重芁な点に぀いお説明したす。



ドキュメント識別子のリストから文字のリストを取埗する



 CREATE PROCEDURE [dbo].[PR_TDMSReport_GetDocList_SENT] ( @guid uniqueidentifier – ,      ) AS BEGIN declare @id bigint select @id = f_objid from tngptdms.dbo.tobject (nolock) where f_guid = @guid; declare @temp_revs table ([guid_rev] uniqueidentifier --GUID  ,descr varchar(max) --  ,letter varchar(10) --1-  -  ,id varchar(10) --2-  -  ,t datetime --   ,objid_rev bigint -- -  ); --  ,     insert into @temp_revs EXEC [TNGP].[dbo].[PR_TDMSRevision_GetListByObject] @guid = @guid --  GUID-  XML-  ESLA declare @subquery varchar (MAX) set @subquery = cast ((select '{'+cast([guid_rev] as varchar(50))+'}' from @temp_revs for xml path('item'), elements, type) as varchar(MAX)) --     XML- declare @query XML set @query = '<conditions> <item> <key>crs_management_outgoing_attachments</key> <values>' + @subquery + '</values> </item> </conditions>' --    ,   easla.com declare @temquerytbl table ( regnum varchar(32), regdate varchar(32), revguids xml, [SentStatus] varchar(40) ) --,     easla.com DECLARE @organization_id AS INT; DECLARE @process_id AS INT; DECLARE @objectdef_id AS INT; DECLARE @user_id AS INT; declare @ret int declare @logined int set @logined = 0 if(@subquery is not NULL) begin -- , –           ESLA,      -- EASLAlogin –     easla.com select @logined = [master].[dbo].[EASLAlogin](,) IF (@logined = 1) BEGIN --     easla.com SELECT @organization_id = organization.id, @process_id = process.id, @objectdef_id = objectdef.id FROM [master].[dbo].[EASLAgetOrganization] ('TNGP') AS organization LEFT JOIN [master].[dbo].[EASLAgetAllProcesses] () AS process ON process.oid = organization.id LEFT JOIN [master].[dbo].[EASLAgetAllObjectdefs] () AS objectdef ON objectdef.pid = process.id WHERE process.code = 'crs_management' AND objectdef.code = 'crs_management_outgoing'; -- -   easla.com SELECT @user_id = id FROM [master].[dbo].[EASLAgetOrganizationUser] (@organization_id, ) --  easla.com   insert into @temquerytbl SELECT attributerefs.value('(ArrayOfAttributerefSimpleSoap[1]/AttributerefSimpleSoap[1]/values/item/node())[1]','varchar(30)') as letternum ,attributerefs.value('(ArrayOfAttributerefSimpleSoap[1]/AttributerefSimpleSoap[2]/values/item/node())[1]','varchar(30)') as regdate ,cast(attributerefs.query('(ArrayOfAttributerefSimpleSoap[1]/AttributerefSimpleSoap[3]/values/item/consist/item/revdata)')as varchar(max)) as revguid ,cast([status].query('(StatusSimpleSoap[1]/name[1]/node())')as varchar(max)) as sentstatus from master.[dbo].[EASLAgetobjectrefs]( @process_id, @objectdef_id --   ,CAST(' <attributerefs> <item>crs_management_outgoing_regnum</item> <item>crs_management_outgoing_sentdate</item> <item>crs_management_outgoing_attachments</item> </attributerefs> ' AS XML) ,@query, @user_id ); end declare @temquerytbl1 table ( revguid varchar(50), regnum varchar(30), regdate varchar(30), sentstatus varchar(40) ) insert into @temquerytbl1 select cast(t2.loc.query('(./node())') as varchar(50)), regnum,replace(regdate,'/','.'),sentstatus from @temquerytbl as T CROSS APPLY revguids.nodes('/revdata') as T2(Loc) END IF (@logined = 1) BEGIN select @logined = 1 - [master].[dbo].[EASLAlogout]() end 

      
      







同様の手順PR_TDMSReport_GetDocList_RECEIVEDもありたす。この手順では、承認状に関する情報が芁求されたす。 承認レタヌが瀺されおいる属性はTDMSに栌玍されおいる ため、違いがありたすが、䞀般的には動䜜原理を説明するこずは重芁ではありたせん。



JOIN操䜜では、このすべおのデヌタずTDMSのデヌタ蚭蚈゚リア、建蚭珟堎、䞀般蚈画の䜍眮など、玄50のパラメヌタヌを組み合わせた䞀連の手順がありたす。 いく぀かの手順がありたす。 䞀郚のお客様には非垞に具䜓的な芁件がありたす。 これらは 、MS Excelドキュメントのマクロから 呌び出さ れたす 。 箄10個のドキュメントテンプレヌトがありたす-レポヌトは異なりたす。顧客ごずに独自のバヌゞョンがありたす。




結論



私の経隓では、非垞に少数のタむプの䌚蚈を導入するこずは、監査を実装するのず同じくらいスムヌズです。 実装埌、最も基本的なタスクではなく、デザむナヌが時間を倧幅に短瞮する機䌚を埗たため、アヌカむブは本圓に「生きた」ものになりたした。 2幎間 これは䞀定レベルの安定性を物語っおいたす、 2䞇通以䞊の文字 着信および発信が既に登録されおおり、その倧郚分はプロゞェクト文曞に関連しおいたす。 圓瀟の顧客が、他の䌁業ず比范した調敎プロセスの組織ずいう点で重芁な違いを認識しおいるこずは間違いありたせん 。



easla.com開発者ずの良奜な連絡先が利甚できるこずは、良い圹割を果たしたした。 機胜の実装に察する正圓化された芁求 「ファむル構成」などは、垞にタむムリヌに議論および実装されたした。



All Articles