統合機能easla.com

APIまたは通信プロトコルを使用して組織の既存の情報スペースに統合する可能性がなければ、現代の電子文書管理システムは考えられません。







Easla.comも例外ではありません。



ユーザー認証とインポート



まず、 easla.comでは、従業員がいくつかの方法でログインできます。 最初の方法は、もちろん、 easla.comアカウントを使用した承認です。 第二に、ソーシャルネットワークを使用した承認。 そして第三に、 組織のドメインを使用し承認。 はい、はい、オンラインシステムではドメインを介してログインできます。 私は冗談ではありません。



明らかに、組織のドメインを介した承認のために、管理者はeasla.comおよびドメイン自体で適宜設定する必要があります。 ドメインで追加を作成することをお勧めします。 ユーザーデータなどを読み取るのに十分な限られた権限セットを持つユーザー。 ドメインへのポートまたはトンネルを開きます。 ドメイン管理者は、より簡単で便利で安全な方を自分で決定する必要があります。



easla.com側で 、ドメインIP、ユーザー名とパスワード、およびユーザーにアクセスするためのパスを登録する必要があります。 接続を確認し、成功した場合は、ドメインからユーザーをインポートします。 ユーザーがすでに作成されている場合、インポートはできませんが、インポートにより管理者の寿命が大幅に簡素化されます。







ところで、ユーザーをインポートするときは、姓、名、ミドルネーム、ログイン、および電子メールだけがインポートされません。 メールだけでなく、必要なすべての属性、および役職と部署も含まれます。







LDAPからインポートすると、以前にインポートされたユーザーとそのステータス(ブロックされているかどうか)が視覚的に表示されます。 さらに、 easla.comの既存のアカウントへのハイパーリンクが含まれています。 ドメイン側で多くの変更が行われた場合、たとえば、あるアカウントから別のアカウントへのユーザーの「大量移行」があり、電話番号とキャビネット番号が変更された場合、「インポートされたすべてのユーザーを更新」ボタンでシステムのデータを更新できます。

すべて管理者に注意してください!



メールサーバー



もちろん、 easla.comには独自のメールサーバーがありますが、それを使用して送信されるレターは同じ仮想ユーザーに代わって送信されます。 しかし、ほとんどの従業員は、送信者のアドレスを見ずに、これが不要であるという警告にもかかわらず、着信メッセージに応答することに慣れているか、慣れています。 その結果、文字はどこにも行きません。

システムからのメールメッセージを適切に認識するようにユーザーに教えることができますが、そうでない場合は、組織のメールサーバーを使用します。 easla.comを設定すると、組織のメールサーバー名、ポート、ユーザー名、パスワードを指定できます。 その後、 fromパラメーターがsendEmail関数で入力されると、レターは組織のメールサーバーから送信され、 fromパラメーターが指定されていない場合はeasla.comメールサーバーから送信されます。







SOAP



Easla.comは、登録されているすべての管理者とユーザーにデータへのSOAPアクセスを提供します。 機能の説明はリンクにあります(許可されたユーザーと管理者のみ):

https://easla.com/en/admin/soap

https://easla.com/us/user/soap



もちろん、管理者とユーザーのデータへのアクセスは異なります。 ユーザーは、SOAPを介しても、アクセス権のないオブジェクトにはアクセスできず、管理者にはすべてのオブジェクトに関するデータを受信する権限があります。

SOAPはさまざまな方法で使用できます。 たとえば、VBScriptでスクリプトを使用する場合:

easla.comから送信メールのリストを取得する
Function EaslaSoapLogin(userName, password) Dim strSoap strSoap = "<s:Envelope xmlns:s=""http://schemas.xmlsoap.org/soap/envelope/"">" & Chr(13) & _ "<s:Body xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">" & Chr(13) & _ "<login xmlns=""User"">" & Chr(13) & _ "<username>" & userName & "</username>" & Chr(13) & _ "<password>" & password & "</password>" & Chr(13) & _ "</login>" & Chr(13) & _ "</s:Body>" & Chr(13) & _ "</s:Envelope>" EaslaSoapLogin = strSoap End function Function EaslaSoapLogout() Dim strSoap strSoap = "<s:Envelope xmlns:s=""http://schemas.xmlsoap.org/soap/envelope/"">" & Chr(13) & _ "<s:Body xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">" & Chr(13) & _ "<logout xmlns=""User""/>" & Chr(13) & _ "</s:Body>" & Chr(13) & _ "</s:Envelope>" EaslaSoapLogout = strSoap End function Function EaslaSoapOutgoings() Dim strSoap strSoap = "<?xml version=""1.0"" encoding=""UTF-8""?>" & Chr(13) & _ "<soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">" & Chr(13) & _ "<soap:Body>" & Chr(13) & _ "<getObjectrefs xmlns=""User"">" & Chr(13) & _ "<objectdef>" & Chr(13) & _ "<id>234</id>" & Chr(13) & _ "<pid>118</pid>" & Chr(13) & _ "</objectdef>" & Chr(13) & _ "<attributerefs>" & Chr(13) & _ "<item>crs_management_outgoing_regnum</item>" & Chr(13) & _ "<item>crs_management_outgoing_document</item>" & Chr(13) & _ "<item>crs_management_outgoing_attachments</item>" & Chr(13) & _ "</attributerefs>" & Chr(13) & _ "<conditions>" & Chr(13) & _ "<item>" & Chr(13) & _ "<key>status</key>" & Chr(13) & _ "<values>" & Chr(13) & _ "<item>crs_management_outgoing_created</item>" & Chr(13) & _ "</values>" & Chr(13) & _ "</item>" & Chr(13) & _ "</conditions>" & Chr(13) & _ "</getObjectrefs>" & Chr(13) & _ "</soap:Body>" & Chr(13) & _ "</soap:Envelope>" EaslaSoapOutgoings = strSoap End function Function EaslaLogin(login, password) Dim URL URL = "https://easla.com/ru/user/soap/ws/1" Dim strSoapReq strSoapReq = EaslaSoapLogin(login, password) Dim oHttp Set oHttp = CreateObject("Msxml2.XMLHTTP") oHttp.open "POST", URL, false oHttp.setRequestHeader "Content-Type", "application/soap+xml" oHttp.setRequestHeader "charset", "utf-8" oHttp.send strSoapReq Dim strResult strResult = oHttp.responseText ',    ? dim regExp Set regExp = CreateObject("VBScript.RegExp") regExp.Multiline = True regExp.Pattern = "<ns1:loginResponse><loginResult>(.*)</loginResult></ns1:loginResponse>" 'Wscript.Echo strResult Set matches = regExp.Execute(strResult) if matches.count = 0 then EaslaLogin = false Exit Function end if EaslaLogin = (matches(0).SubMatches(0) = "true") End Function Function EaslaLogout Dim URL URL = "https://easla.com/ru/user/soap/ws/1" Dim strSoapReq strSoapReq = EaslaSoapLogout() Dim oHttp Set oHttp = CreateObject("Msxml2.XMLHTTP") oHttp.open "POST", URL, false oHttp.setRequestHeader "Content-Type", "application/soap+xml" oHttp.setRequestHeader "charset", "utf-8" oHttp.send strSoapReq Dim strResult strResult = oHttp.responseText ',    ? dim regExp Set regExp = CreateObject("VBScript.RegExp") regExp.Multiline = True regExp.Pattern = "<ns1:logoutResponse><logoutResult>(.*)</logoutResult></ns1:logoutResponse>" 'Wscript.Echo strResult Set matches = regExp.Execute(strResult) if matches.count = 0 then EaslaLogout = false Exit Function end if EaslaLogout = (matches(0).SubMatches(0) = "true") End Function Function EaslaOutgoings(ByRef ids, ByRef descriptions) Dim URL URL = "https://easla.com/ru/user/soap/ws/1" Dim strSoapReq strSoapReq = EaslaSoapOutgoings() Dim oHttp Set oHttp = CreateObject("Msxml2.XMLHTTP") oHttp.open "POST", URL, false oHttp.setRequestHeader "Content-Type", "application/soap+xml" oHttp.setRequestHeader "charset", "utf-8" oHttp.send strSoapReq Dim strResult strResult = oHttp.responseText ',    ? dim regExp Set regExp = CreateObject("VBScript.RegExp") regExp.Multiline = True regExp.Pattern = "<faultstring>(.*)</faultstring>" Set matches = regExp.Execute(strResult) if matches.count = 1 then EaslaOutgoings = false Exit Function end if EaslaOutgoings = ParseXMLToOutgoingsArray(Progress, strResult, ids, descriptions) End function Sub Reverse( ByRef myArray ) Dim i, j, idxLast, idxHalf, strHolder idxLast = UBound( myArray ) idxHalf = Int( idxLast / 2 ) For i = 0 To idxHalf strHolder = myArray( i ) myArray( i ) = myArray( idxLast - i ) myArray( idxLast - i ) = strHolder Next End Sub Function ParseXMLToOutgoingsArray(progress, strXML, ByRef ids, ByRef descriptions) Dim xmlDoc Set xmlDoc = CreateObject("Microsoft.XMLDOM") xmlDoc.async = false Dim ret ret = xmlDoc.loadXML(strXML) if (xmlDoc.parseError.errorCode <> 0) then Dim myErr Set myErr = xmlDoc.parseError ThisApplication.AddNotify "   XML " + myErr.reason end if dim nodeList Set nodeList = xmlDoc.SelectNodes("//getObjectrefsResult/item") Dim cnt, q, n cnt = nodeList.length q = 0 For Each node In nodeList dim id 'id = id_node.getElementsByTagName("value").item(0).Text id = node.getElementsByTagName("id").item(0).Text dim description description = node.getElementsByTagName("description").item(0).Text n = UBound(ids) if (n < 0) Then n = 0 ReDim Preserve ids(n + 1) ReDim Preserve descriptions(n + 1) ids(UBound(ids)) = id descriptions(UBound(descriptions)) = description q = q + 1 Next Call Reverse(ids) Call Reverse(descriptions) ParseXMLToOutgoingsArray = q End Function Dim auth auth = EaslaLogin("ORGANIZATION_CODE\User_login", "User_password") if (auth = false) then MsgBox "  easla.com  .     !", vbCritical Exit Sub end if Dim ids Dim descriptions Dim success success = EaslaOutgoings(ids, descriptions) Call EaslaLogout
      
      









C#



ユーザーの職場にインストールされたEaslaAgentを使用して、C#でモジュールとスタンドアロンアプリケーションを記述することができます-今では非常に人気のあるプログラミング言語です。 エージェントはユーザー認証を引き受けるため、プログラマーの生活が簡素化されます。 また、エージェントは、 easla.comへのすべての呼び出しを正しい要求に変換します。

ところで、エージェントは、受信したオブジェクトのリストを含むダイアログボックスを表示して、各アプリケーションで何度も「フェンス」しないようにする機能を提供します。 ウィンドウは次のようになります。







easla.comからオブジェクトのリストを取得し、ダイアログボックスに表示するコードのスニペット:

 var result = EaslaApp.getObjectrefs(object_def, new string[] { "crs_management_incoming_contragent_regnum" }, new Easla.KeyValuesPairSoap[] { new Easla.KeyValuesPairSoap() {key = "status", values = new string[] {"crs_management_incoming_created"} }, new Easla.KeyValuesPairSoap() {key = "isdeleted", values = new string[] {"0"} } }); var m = EaslaApp.ShowSelectObjectDialog(result, new Easla.KeyValuePairSoap[] { new Easla.KeyValuePairSoap() { key = "", value = "description"}, new Easla.KeyValuePairSoap() { key = " ", value = "createtime"}, new Easla.KeyValuePairSoap() { key = "", value = "status.name"}, new Easla.KeyValuePairSoap() { key = "  ", value = "attributerefs[0].values[0].values[0]"} }) as Easla.ObjectrefComplexSoap;
      
      







SQL



最後に、 easla.comがCLRモジュールを使用してMS SQLに統合できることを追加します。 MS SQL用のEasla.comモジュールをインストールすると、easla.comのデータをSQLクエリから直接クエリし、処理して、ローカルで使用されるシステムやレポートに送信できます。

簡単な例:

 select @logined = [master].[dbo].[EASLAlogin](,) IF (@logined = 1) BEGIN --   ,       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'; 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) , ' <conditions> <item> <key>status</key> <values><item>crs_management_outgoing_created</item></values> </item> </conditions>', @user_id –- -  ); END IF (@logined = 1) BEGIN select @logined = 1 - [master].[dbo].[EASLAlogout]() END
      
      



EASLAgetobjectrefs(@process_id、@ objectdef_id、CAST(「<attributerefs>の<item> crs_management_outgoing_regnum </商品> <商品> crs_management_outgoing_sentdate </商品> <商品> crs_management_outgoing_attachments </ item>を</ attributerefs select @logined = [master].[dbo].[EASLAlogin](,) IF (@logined = 1) BEGIN -- , 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'; 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) , ' <conditions> <item> <key>status</key> <values><item>crs_management_outgoing_created</item></values> </item> </conditions>', @user_id –- - ); END IF (@logined = 1) BEGIN select @logined = 1 - [master].[dbo].[EASLAlogout]() END







まとめ



要約すると、繰り返しますが、真にオープンなシステムのみが現在の状況に生きる権利を持ち、 easla.comはユーザー(この場合は管理者)がデータにアクセスする際の操作と独立性の完全な柔軟性を感じることができます。 制限なし!



All Articles