• Вэб үйлчилгээний схем 1s. Гадаад програмуудын Terrasoft вэб үйлчилгээнүүдтэй ажиллах. Динамик WS холбоосыг ашиглах жишээ

    09.05.2022

    Бид механизмыг ашиглах ерөнхий ойлголтуудыг авч үзсэн « вэб-үйлчилгээ".Зарим мэдлэгээ сэргээцгээе.

    Вэб үйлчилгээг сервер болон үйлчлүүлэгчийн хооронд өгөгдөл солилцоход ашигладаг; XML форматыг харилцааны оролцогчдын хооронд харилцан ойлголцох зорилгоор өгөгдлийг "багцлах" зорилгоор ашигладаг.

    БҮЛЭГI

    ХЭРЭГЖҮҮЛЭХ ЖИШЭЭВЭБ-"1С: ENTERPRISE" СИСТЕМИЙН ҮЙЛЧИЛГЭЭ

    ДААЛГАВАР:Үйлчлүүлэгчид өөрсдийн хэрэглээний бүх мэдээллийг тодорхойлох боломжтой вэб үйлчилгээг бий болгох шаардлагатай байна.

    Даалгавар нь үзүүлэх даалгавар бөгөөд зөвхөн механизмыг ойлгох, сурахад үлгэр жишээ болновэб-үйлчилгээ.

    ШИЙДЭЛ:

    1-р алхам.Шинэ тохиргоог боловсруулахын тулд тохиргоогүйгээр шинэ мэдээллийн сан үүсгэцгээе.

    Алхам 2Тохиргоонд хэдэн шинэ объект нэмье

    "Үйлчлүүлэгчид" лавлах;

    "Өргөдөл" баримт бичиг;

    "Програмын статус" тооллого.

    Алхам 3Шинэ XDTO багц үүсгэцгээе.

    Бид яагаад, яагаад XDTO багц үүсгэж байна вэ? Та XDTO механизмыг ашиглах талаар дэлгэрэнгүйг "Бүлэг 16. Хөгжүүлэгчийн гарын авлага" болон.

    XDTO механизм нь янз бүрийн гадаад өгөгдлийн эх сурвалж, програм хангамжийн системтэй харилцах өгөгдлийг харуулах бүх нийтийн арга гэдгийг товчхон дурдъя.

    Манай тохиолдолд вэб үйлчилгээний өгөөжийн утгыг тайлбарлахын тулд XDTO багцыг үүсгэсэн.

    "Ерөнхий" → "XDTO багцууд" → Нэмэх салбарыг өргөжүүлнэ үү.

    XDTO багцын нэрийг зааж өгнө үү " Баримт бичгийн өгөгдөл” болон түүний нэрийн талбар http://localhost/request эсвэл http://192.168.1.76/request (ойлгох, сурах үйл явцыг хөнгөвчлөхийн тулд бид вэб сервер суулгасан компьютерийн локал IP хаягийг зааж өгдөг (дэмжигдсэн вэб серверүүд: IIS эсвэл Apache)). Вэб үйлчилгээ бүрийг өөрийн нэр болон харьяалагдах нэрийн орон зайн URI хаягаар нь ялган таних боломжтой.

    Манай багц нь хоёр төрлийн XDTO объектыг агуулдаг:

    1) Хэрэглэгч- "Клиент" лавлах элементийн өгөгдлийг дамжуулах.

    - Нэр ;

    2) баримт бичиг- "Програм" баримт бичгийн өгөгдлийг шилжүүлэх.

    Энэ төрлийн XDTO объект нь дараах шинж чанаруудыг агуулна.

    - Хэрэглэгч- http://192.168.1.76/request нэрийн талбараас хэрэглэгчийн төрөл; нь бидний дээр тодорхойлсон XDTO объектын лавлагаа юм;

    - Статус- http://www.w3.org/2001/XMLSchema нэрийн талбараас мөрийн төрөл;

    - Тоо- http://www.w3.org/2001/XMLSchema нэрийн талбараас мөрийн төрөл.

    Алхам 4Тохиргоонд шинэ вэб үйлчилгээг нэмнэ үү

    "Ерөнхий" → "Вэб үйлчилгээ" салбарыг өргөжүүлэх → Нэмэх ...

    Вэб үйлчилгээний хувьд дараах өмчийн утгыг зааж өгнө үү:

    Нэр - Баримт бичгийн өгөгдөл

    URI нэрсийн орон зай - http://192.168.1.76/request

    XDTO багцууд - Баримт бичгийн өгөгдөлэсвэлhttp://192.168.1.76/request

    Нийтлэлийн файлын нэр - хүсэлт.1cws

    Алхам 5Үүсгэсэн вэб үйлчилгээний хувьд бид үйлдлийг тодорхойлдог " өгөгдөл авах»

    Үйлдлийн өмчийн үнэ цэнэ:

    Буцах төрөл - Баримт бичиг (http://192.168.1.76/request)

    Магадгүй хоосон утга - Үнэн

    Процедурын нэр - өгөгдөл авах.

    Алхам 6Үйл ажиллагаа өгөгдөл авахХэрэглэгчийн параметрийг дараах шинж чанарын утгуудаар тодорхойлно.

    Утгын төрөл - төрөл мөр http://www.w3.org/2001/XMLSchema нэрийн талбараас;

    Дамжуулах чиглэл - оролт.

    Алхам 7Үүсгэсэн вэб үйлчилгээний модулийг нээж, дотор нь энэ вэб үйлчилгээг дуудах үед ажиллах Get() функцийг байрлуулцгаая.

    GetData(Customer) функц // XDTO объектуудын төрлийг авах ClientType = FactoryXDTO.Type("http://192.168.1.76/request", "Customer"); RequestType = FactoryXDTO.Type("http://192.168.1.76/request", "Баримт бичиг"); // Үйлчлүүлэгчийг авах ClientReference = Directories.Clients.FindByName(Customer); Хэрэв ValueFilled (ClientReference) биш бол тодорхойгүй буцаана; EndIf; Хүсэлт = Шинэ хүсэлт; Хүсэлт.Текст = "Эхлээд 1-ийг сонго | Билет.Лавлагаа, | ТӨЛӨӨЛӨГ(Тасалбар. Статус) Статус, | Тасалбар.Дугаар |НАСаас | Баримт бичиг.Тасалбар АС |ХААНА | Ticket.Client = &Client"; Request.SetParameter("Клиент", ClientReference); QueryResult = Query.Execute(); Хэрэв QueryResult.Empty() бол тодорхойгүй буцаана; EndIf; Сонголт = QueryResult.Select(); Selection.Next(); Document = Selection.Reference.GetObject(); // XDTO тасалбарын объект үүсгэх Ticket = FactoryXDTO.Create(TicketType); Application.Numder = Sample.Number; Client = FactoryXDTO.Create(ClientType); Client.Name = ClientReference.Name; Application.Customer = Үйлчлүүлэгч; Application.Status = Сонголт.Статус; // Буцаах хүсэлт Буцах хүсэлт; Төгсгөлийн функцууд

    Алхам 8Үүсгэсэн вэб үйлчилгээг вэб сервер дээр нийтэлье.

    Тохируулагч цэсийн зүйл: "Захиргаа" → "Вэб сервер дээр нийтлэх".

    "Вэб үйлчилгээ" таб дээр "Вэб үйлчилгээг нийтлэх" гэсэн тугийг тавиад манай шинэ вэб үйлчилгээний хажууд байгаа нүдийг шалгана уу.

    БҮЛЭГII

    ИШ АВАХ ЖИШЭЭВЭБ- 1С: ГУРАВДАГЧИЙН ХЭРЭГЛЭЭНИЙ ҮЙЛДВЭРИЙН ҮЙЛЧИЛГЭЭ

    1С: Аж ахуйн нэгж дэх вэб үйлчилгээний механизмын гол зорилго нь шаардлагатай өгөгдлийг гуравдагч талын програмуудад дамжуулах явдал юм.

    Энэ нийтлэлийн эхний хэсгээс манай вэб үйлчилгээг дуудаж Delphi-д програм хөгжүүлэх жишээг авч үзье.

    1-р алхам.Шинэ төсөл үүсгээд маягт дээр хэд хэдэн хяналт байрлуулцгаая

    Текст талбар - вэб үйлчилгээнээс хүлээн авсан мэдээллийг харуулахад ашигладаг;

    Хоёр товчлуур - текст талбарыг цэвэрлэж, вэб үйлчилгээнд хандах;

    Оролтын талбар нь вэб үйлчилгээнд дамжуулагдсан параметр юм.

    Алхам 2 WSDL файлыг импортлож байна

    Үүний үр дүнд бид шинэ модулийг авах болно хүсэлт(бид ийм нэрийг 1С-д шууд тодорхойлсон). Энэ модуль нь вэб үйлчилгээнд шаардлагатай бүх мэдээллийг агуулдаг.

    Алхам 3Вэб үйлчилгээний дуудлагын зохицуулагчийг бичнэ үү

    DocumentDataPortType хувьсагч аль хэдийн модульд тодорхойлогдсон байна хүсэлт

    Алхам 4Програмаа ажиллуулаад шалгана уу.

    БҮЛЭГIII

    ИШ АВАХ ЖИШЭЭВЭБ-"1С: ENTERPRISE" СИСТЕМИЙН ҮЙЛЧИЛГЭЭ

    1-р алхам."WEB_Service" нэртэй шинэ гадаад боловсруулалтыг үүсгэцгээе.

    Алхам 2Боловсруулахын тулд бид шинэ хэлбэрийг тодорхойлно

    Алхам 3Маягтын хэд хэдэн дэлгэрэнгүй мэдээллийг зааж өгнө үү

    Үйлчлүүлэгч - "Мөр" гэж бичнэ үү

    ClientReturn - "String" гэж бичнэ үү

    NumberReturn - "Мөр" гэж бичнэ үү.

    StatusReturn - "String" төрөл.

    Бид маягт дээр дэлгэрэнгүй мэдээллийг харуулах болно.

    Алхам 4Маягтын командыг нэмье " Өгөгдөл авахын тулд»

    Тушаал зохицуулагчийг зааж өгнө үү

    &OnClient журам GetData(Command) GetDataOnServer(Клиент); Процедурын төгсгөл GetDataOnServer(Client) // Холбоос дээр үндэслэн WS прокси үүсгээд Get() үйлдлийг гүйцэтгэнэ Тодорхойлолт = Шинэ WSDefinitions("http://192.168.1.76/WEB_Service/ws/request.1cws?wsdl") ; Прокси = Шинэ WSProxy(Тодорхойлолт, "http://192.168.1.76/request", "DocumentsData", "DocumentsDataSoap"); RequestData = Proxy.GetData(Клиент); Хэрэв OrderData = Тодорхойгүй бол ClientReturn = "Тодорхойгүй"; StatusReturn = "Тодорхойгүй"; ReturnNumber = "Тодорхойгүй"; Буцах; EndIf; CustomerReturn = RequestData.Customer.Name; StatusReturn = RequestData.Status; ReturnNumber = RequestData.Numder; Төгсгөлийн процедур

    1С: Аж ахуйн нэгж нь бусад үйлчилгээ үзүүлэгчээс үзүүлж буй вэб үйлчилгээг хоёр аргаар ашиглаж болно.

    Ашиглах замаар статиктохиргооны модонд үүсгэсэн холбоосууд;

    "нэмэх":ажлын өндөр хурд;

    "хасах":тохируулагчийг ашиглан WSDL тайлбарыг дахин импортлож, өөрчилсөн тохиргоог хадгалах.

    Ашиглах замаар динамиксуулгасан хэлээр үүсгэсэн холбоосууд

    (тус тусад нь динамикийн хувьд статикийн "сул талууд" нь "нэмэх" юм)

    БҮЛЭГIV

    1С: ENTERPRISE СИСТЕМ ДАХЬ ВЭБ ҮЙЛЧИЛГЭЭНИЙ ДИБУГ хийх

    Орон нутгийн вэб үйлчилгээний хувьд танд дараах зүйлс хэрэгтэй:

    1-р алхам. 1С системийг эхлүүлсэн файлыг үйлчлүүлэгч дээр тавь webservicecfg.xmlдараах агуулгатай

    Алхам 2Файл өгөх анхдагч. vrdтохиргоо нэмэх мөрийг нийтлэх

    Алхам 3Тохируулагчаас цэсийн зүйлийг сонгоно уу

    "Дбаг хийх" → "Холболт" → "Автомат холболт" → "Сервер дээрх вэб үйлчилгээ"

    Алхам 4"OK" товчийг дарна уу

    Серверийн хувилбарын хувьд та мөн түлхүүрээр 1c серверийг дибаг хийх горимд ажиллуулах хэрэгтэй / дибаг хийх

    Вэб үйлчилгээ гэж юу вэ, яагаад хэрэгтэй вэ гэсэн асуултын талаар би ярихгүй. Энэ сэдвээр вэб дээр олон нийтлэл байдаг. Би php дээр ямар ч вэб үйлчилгээнд үйлчлүүлэгч үүсгэх нь хичнээн амархан болохыг товчхон харуулахыг хичээх болно.

    Тохиргоо

    Php-д SOAP ашиглахын тулд та SOAP модулийг холбох хэрэгтэй (php5 түгээлтэд багтсан). Цонхны доор энэ нь энгийн байдлаар хийгддэг - та php.ini дээр нэмэх хэрэгтэй (энэ мөрийг зүгээр л тайлбарлаагүй, огт байхгүй тул нэмэх хэрэгтэй):
    өргөтгөл = php_soap.dll

    Хэрэв танд php модуль болгон суулгасан бол серверээ дахин эхлүүлэхээ бүү мартаарай.

    WSDL баримтаас SOAP клиент үүсгэх

    SOAP клиентийг ихэвчлэн WSDL баримтаас үүсгэдэг бөгөөд энэ нь тодорхой вэб үйлчилгээг бүрэн дүрсэлсэн тодорхой форматтай XML баримт бичиг юм. WSDL-ийн талаарх дэлгэрэнгүй мэдээллийг би таныг W3C вэбсайтаас лавлана уу - www.w3.org/TR/2005/WD-wsdl20-soap11-binding-20050510.

    Вэб үйлчилгээнд үйлчлүүлэгч үүсгэхийн тулд таны мэдэх ёстой гол зүйл бол түүний WSDL баримт бичгийн URL-г мэдэх явдал юм.
    Жишээ болгон xmethods.com сайтаас "Валютын ханш" вэб үйлчилгээг авч үзье. Валютын ханшийг онлайнаар хүлээн авах боломжтой энэхүү вэб үйлчилгээний хаяг нь www.xmethods.net/sd/2001/CurrencyExchangeService.wsdl юм.

    Хоёрдахь чухал зүйл бол вэб үйлчилгээний тайлбараас та энэ үйлчилгээ ямар аргуудаар хангадаг, ямар параметрүүдийг оруулах утга болгон дамжуулах ёстой талаар мэдээлэл авах хэрэгтэй (ердийн php функц эсвэл анги гэж дуудахтай маш төстэй). арга). Ихэвчлэн энэ мэдээллийг вэбсайт дээрх үйлчилгээний тайлбарт багтаасан байдаг. Валютын ханшийг тодорхойлох манай вэб үйлчилгээ нь валютын кодыг аргумент болгон хүлээн авдаг getRate() аргыг өгдөг.

    Эцэст нь хэлэхэд, хариултын хувьд юу хүлээж байгааг мэдэх нь чухал: хэдэн утга, ямар төрөл гэх мэт. Үүнийг мөн тайлбараас авч болно.
    Үүний үр дүнд код нь маш энгийн бөгөөд авсаархан, бараг энгийн:

    // Вэб үйлчилгээг ашиглах
    // xmethods.com сайтаас "Валютын ханш"

    // WSDL баримтаас SOAP клиент үүсгэнэ үү
    $client = new SoapClient("http://www.xmethods.net/sd/2001/CurrencyExchangeService.wsdl");

    // SOAP хүсэлт илгээж, үр дүнг авна
    $үр дүн = $client->getRate("бид", "орос");

    Цуурай ‘Одоогийн долларын ханш: ’, $үр дүн, ‘рубль’;
    ?>

    Кодоос харахад та WSDL баримтын URL-г SoapClient классын үүсгэгч рүү дамжуулж, хүссэн вэб үйлчилгээтэй ажиллах объект авах хэрэгтэй. Дараа нь энэ объектын аргыг дуудаж, нэр нь вэб үйлчилгээний аргын нэртэй таарч байна. Энэ арга нь хүссэн үр дүнг буцаана.

    Тиймээс, энэ энгийн жишээ нь PHP дээр вэб үйлчилгээнд зориулсан SOAP клиентийг бий болгох зарчмыг харуулж байна. Гэсэн хэдий ч, бодит хэрэглүүр дээр анхаарах ёстой олон зүйл байсаар байна, тухайлбал вэб үйлчилгээнд хандах үед энэ нь түр хугацаанд ажиллах боломжгүй эсвэл алдаа гаргаж болзошгүй. try/catch/throw блок ашиглах нь тодорхой харагдаж байна :)

    Өгөгдлийн солилцоог ихэвчлэн нэг програмаас файл байршуулж, нөгөө програм руу ачаалах замаар зохион байгуулдаг. Зарим программистууд 1С SQL мэдээллийн санд нэвтрэх эрхийг гуравдагч талын программуудаар хангадаг (энэ нь маш их зөвлөдөггүй юм шиг санагддаг).

    "Мэдээлэл солилцох" гэсэн нэр томъёо нь даалгаврын хувьд үргэлж тохиромжтой байдаггүй, заримдаа үүнийг өгөгдлийн хангамж гэж хэлэх нь илүү зөв байдаг. Жишээлбэл, гадны програм нь 1С-д ийм үйлчлүүлэгч байгаа эсэх, түүний үлдэгдлийг тодорхойлох шаардлагатай.

    Мэдээллийн аюулгүй байдлын үүднээс 1С өгөгдөлд хандах эрх олгох нь буруу юм. Харин үлдэгдэл буцаан олгосноор нэр, нууц үгээр шалгах механизм шаардлагатай.

    Хөтөлбөр нь өгөгдөл биш харин үйлчлүүлэгчийг таньж, түүний үлдэгдлийг олох боломжийг олгодог үйлчилгээ гэж нэрлэгддэг энэ аргыг үйлчилгээ гэж нэрлэдэг.

    Хэрхэн ажилладаг?

    Гадаад функцуудыг SOAP хүсэлтээр дууддаг (эхэлсэн).

    Параметр болон үр дүнг дамжуулахад ашигладаг. Вэб үйлчилгээтэй ажиллахын тулд та үндсэн ойлголттой байх ёстой.

    Вэб үйлчилгээ 1С

    1С вэб үйлчилгээ нь 1С-ийн зарим функцийг 1С баазаас гадна бусад программууд эсвэл бусад 1С баазуудаас ажиллуулахыг зөвшөөрөх арга юм.

    1С вэб үйлчилгээний аргыг (функц) дуудах үед гадны программ мэдээлэлд хандах эрхгүй тул энэ нь 1С өгөгдөлд шууд хандахаас илүү дээр юм. 1С хэл дээрх функц нь дамжуулагдсан параметрийн дагуу (жишээлбэл, нэр, нууц үг) тодорхой өгөгдлийг хүлээн авах гадаад програмын эрхийг бие даан тодорхойлдог.

    Ихэнх тохиолдолд та өөрийн XDTO багцыг үүсгэх боломжгүй, гэхдээ жагсаалтаас www.sample-package.org багцыг сонгон өгөгдмөл багцыг ашиглана уу.

    1С вэб үйлчилгээний аргууд

    Үүний дараа та гаднаас өгөх функцуудын жагсаалтыг (1С вэб үйлчилгээний аргууд) нэмэх хэрэгтэй. Тэднийг англиар дуудах нь дээр. Функц нь параметртэй байж болно.

    Хэрэглэх үндсэн төрлүүд:

    • мөр
    • int эсвэл бүхэл тоо - бүхэл тоо
    • бодит - бутархай тоо
    • огноо - огноо.

    1С вэб үйлчилгээний нэмэлт функц бүрийн хувьд та бидний хийсэн шиг шинж чанаруудыг үүсгэх хэрэгтэй гэх мэт.

    Энэ бол 1С вэб үйлчилгээний аргыг дуудах үед 1С функцийг гүйцэтгэх болно. Энэ нь 1С сервер дээр хийгдэх болно гэдгийг бүү мартаарай. Вэб үйлчилгээтэй 1С файлын горимыг ашиглахыг зөвлөдөггүй.

    Функц нь ихэвчлэн зарим төрлийн өгөгдлийг буцаадаг. Ихэвчлэн мөрийн төрлийг зааж XML мөрийг буцаана.

    XML мөрийг 1С хэлний объект ашиглан үүсгэж болно, эсвэл та зүгээр л XML текстийг хадгалдаг текстийн мөр үүсгэж болно.

    1С вэб үйлчилгээг нийтлэх

    Өмнө дурьдсанчлан бусад програмууд 1С вэб үйлчилгээ байдаг, ийм аргын жагсаалттай гэх мэтийг "мэдэх" ёстой.

    Тайлбар нь вэбсайт дээр байх ёстой. Үүний тулд танд хэрэгтэй:

    • Вэбсайттай байх
    • 1С вэб үйлчилгээний шинж чанарт WSDL тайлбарын холбоос болох 1cws өргөтгөлтэй файлын нэрийг зааж өгнө үү.
    • Энэ файлыг вэб сервер дээрх Administration/Publishing цэсийн зүйлийг ашиглан тохируулагчийн вэбсайт руу байршуулна уу.

    Хөтөч нь зарим XML файлыг харуулах ёстой (WSDL файлын жишээ энд http://ru.wikipedia.org/wiki/WSDL), алдаа биш, хоосон хуудас биш, ямар ч кодчилол дахь бүдэгрүүлсэн текст биш.

    Амжилттай хэвлэгдсэний дараа 1С вэб үйлчилгээг ашиглаж болно. Үүнийг хийхийн тулд өөр програм дээр та энэ интернет хаягийг 1С вэб үйлчилгээний холбоосыг ашиглах хэрэгтэй.

    Жишээлбэл, Visual Studio нь ямар ч хэлээр (C++, C#, Visual Basic) 1С вэб үйлчилгээг WSDL тайлбарын дагуу төсөлд оруулах, 1С вэб үйлчилгээг ашиглах анги үүсгэх боломжийг олгодог.

    1С 8.3 ба 8.2 дахь вэб үйлчилгээ нь үйлчилгээнд чиглэсэн архитектур (SOA) ашиглан 1С платформыг бусад мэдээллийн системтэй нэгтгэх боломжийг олгодог мета өгөгдлийн объект юм.

    SOAP ашиглан 1С 8 мэдээллийн баазын хооронд хоёр талын солилцоо хийх боломжийг олгодог вэб үйлчилгээний жишээн дээр үүсгэх, тохируулах талаар авч үзье.

    Эхлээд табыг харцгаая. Бусад:

    267 1С видео хичээлийг үнэгүй аваарай:

    • Талбайд Нэрийн зайны URIнөөцийн тодорхойлогчийн байршлыг тодорхойлдог.
    • - ирээдүйн вэб үйлчилгээ ажиллах боломжтой төрлүүдийн тодорхойлолт.
    • Нийтлэлийн файлын нэр— вэб сервер дээр байрлах *.1CWS файлын нэр

    Вэб үйлчилгээний бүтэц 1С

    Вэб үйлчилгээний бүтцийг авч үзье:

    DataExchange нь өөрөө вэб үйлчилгээ юм. UnloadData, LoadData - үйлдлүүд нь үнэндээ SOAP протоколоор дуудаж болох функцүүдийн тайлбар юм. ExchangePlanName, NodeCode гэх мэт. — утгууд вэб үйлчилгээнд шилжсэн.

    Вэб үйлчилгээний модуль

    Хамгийн сонирхолтой зүйл бол модульд тавигдсан болно - ирээдүйн вэб үйлчилгээний функцүүдийн тодорхойлолт. Манай тохиолдолд бид стандарт 1С солилцооны механизмыг ашиглан өгөгдөл хүлээн авах, илгээх боломжийг олгодог функцийг тайлбарладаг. Учир нь солилцоо нь нэг платформын хооронд явагддаг - 1C, дараа нь тэд өгөгдлийг цуваа болгох шаардлагагүй.

    Вэб сервер дээрх 1С http үйлчилгээний ажиллагааг шалгаж байна

    Энэ нийтлэлд би гадны програмуудаас Terrasoft вэб үйлчилгээтэй ажиллах зарчмуудыг тайлбарлах болно. Эдгээр механизмуудыг ашигласнаар та ямар ч гадаад системтэй нэгтгэх янз бүрийн ажлуудыг хэрэгжүүлэх боломжтой.

    Гуравдагч талын програмын вэб үйлчилгээтэй ажиллах хоёр арга байдаг бөгөөд энэ нь ашиглалтын зорилго, тодорхой програмчлалын хэлээс хамаарна.
    1. Terrasoft COM-объектуудаар ажиллах
    2. Вэб үйлчилгээтэй шууд ажиллах

    COM объектуудаар ажиллах

    Эхний сонголт нь хамгийн бага цаг зарцуулдаг бөгөөд илүү тохиромжтой боловч Terrasoft номын сангуудыг үйлчлүүлэгчийн машин дээр (COM объектуудыг ашиглахын тулд) бүртгүүлэхийг шаарддаг. Энэ тохиолдолд вэб үйлчилгээтэй холбоотой бүх ажлыг Terrasoft COM объектууд гүйцэтгэж, Terrasoft платформын IDataset, ISelectQuery гэх мэт объектын загвараар дамжуулан өгөгдөл, объектод хандах боломжийг олгоно.

    Програмчлалын дагуу холбогдохын тулд та дараах кодыг ажиллуулах хэрэгтэй (жишээ нь Jscript, гэхдээ үүнийг COM объекттой ажилладаг ямар ч хэл дээр хэрэгжүүлж болно):

    // Холбогч ба тохиргооны COM объектуудыг үүсгэнэ үү
    WSConnector = шинэ ActiveXObject( "TSDskObjectLibrary.DskConnector") ; // 3.4.0+ хувилбаруудын хувьд объектыг ActiveXObject("TSObjectLibrary.Connector") үүсгэсэн.
    var WSCconfiguration = шинэ ActiveXObject( "TSObjectLibrary.Тохиргоо") ;
    WSConfiguration.DBExecutorTypeCode = "WebServices" ;

    // Үүсгэсэн холболтыг кэш хийх
    Connector.Attributes("WSConnector" ) = WSCConnector;

    // Холболтын мөр болон сервер дээр тохируулсан тохиргооны нэрийг тохируулах
    WSConfiguration.SetConnectionString(
    ""URL=http://192.168.227.128/TSWebServicesServerLibrary.dll/soap/IServer"" +
    ","ConfigurationName=Dev332"" );

    // Нээлттэй тохиргоо
    var IsConnected = WSConnector.OpenConfiguration(
    ws тохиргоо,
    1 , // Баталгаажуулалтын төрөл: 0 - Windows Authentication, 1 - Сервер
    "ddd", // Хэрэглэгчийн нэр
    ""); // Нууц үг

    Амжилттай холболт хийсний дараа бид дурын объект руу хандах, өгөгдөл хүлээн авах гэх мэт боломжтой. Жишээлбэл, эсрэг талуудын талаархи мэдээллийг авах:

    // ds_Account үйлчилгээг холбогчоос вэб үйлчилгээнд авч байна
    var AccountDataset = WSConnector.Services .GetSingleItemByUSI ("ds_Account" );

    // Өгөгдлийн багц бэлтгэх: шүүлтүүрүүдийг хаах, цэвэрлэх
    AccountDataset.Close();
    EnableDatasetFilters(AccountDataset, false );

    // Одоогийн бичлэгийн ID-аар шүүлтүүр хэрэглэж байна
    ApplyDatasetFilter(AccountDataset, "ID" , dlData.Dataset ("ID" ) , үнэн );

    // Мэдээллийн багцыг нээх
    AccountDataset.Open();

    // Өгөгдлийг унших
    хэрэв (AccountDataset.IsEOF ) (
    var Value = "(!LANG:(өгөгдөл байхгүй)" ; !}
    edtWSName.Value = Утга;
    edtWSOfficialName.Value = Утга;
    edtWSCode.Value = Утга;
    ) өөр (
    edtWSName.Value = AccountDataset.ValAsStr("Нэр" ) ;
    edtWSOfficialName.Value = AccountDataset.ValAsStr("OfficialAccountName") ;
    edtWSCode.Value = AccountDataset.ValAsStr("Код" ) ;
    }

    // Өгөгдлийн багцыг хааж байна
    AccountDataset.Close();

    COM объектуудыг ашиглан Jscript дээр вэб үйлчилгээтэй ажиллах бүрэн жишээг хавсаргав.

    Вэб үйлчилгээтэй шууд ажиллах

    Энэ төрлийн ажил нь илүү хэцүү байдаг, учир нь Вэб үйлчилгээний бүх хүсэлтийг бие даан илгээх ёстой бөгөөд та серверийн хариуг өөрөө боловсруулах ёстой. Энэ нь Terrasoft COM объектуудыг ашигладаггүй тул вэб үйлчилгээ авахыг хүссэн клиент компьютер бүрт Terrasoft номын санг суулгах, бүртгүүлэх шаардлагагүй.

    Вэб үйлчилгээний хүсэлтийг тэдгээрийн интерфэйс (WSDL) дээр үндэслэн илгээж болно - параметр бүхий бүх аргын тайлбар.

    Вэб үйлчилгээтэй ажиллах программуудыг хөгжүүлэх ажлыг хялбарчлахын тулд Visual Studio зэрэг зарим IDE нь WSDL (WebService Reference нэмэх) импортыг хангадаг бол IDE нь өөрөө вэб үйлчилгээтэй ажиллахад зориулж боодлын анги үүсгэдэг. Ийм ангийн аргуудыг дуудсанаар та вэб үйлчилгээний холбогдох аргуудыг дуудах болно.

    Хялбаршуулсан зүйл бол вэб үйлчилгээний аргыг дуудахын тулд та бүрэн XML хүсэлтийг илгээх шаардлагатай бөгөөд боодлын ангиудын тусламжтайгаар та тохирох аргыг параметртэй нь залгахад л болно.

    C# хэл дээрх жишээ:

    // Вэб үйлчилгээний үйлчлүүлэгч үүсгэх
    ws. IServer sc = шинэ ws. ServerClient(); // ws.IServer нь Terrasoft вэб үйлчилгээтэй ажиллахад зориулагдсан боодлын анги юм
    ws. OpenConfigurationRequest rqOpenConfiguration = шинэ ws. OpenConfigurationRequest(); // Тохиргоог нээх хүсэлт
    ws. OpenConfigurationResponse rsOpenConfiguration = шинэ ws. OpenConfigurationResponse();

    // Нээлттэй тохиргоо
    rqOpenConfiguration. ACompressionLevel = 0 ; //Шахалтгүй (зип)
    rqOpenConfiguration. AConfigurationName = Тохиргоо;
    rqOpenConfiguration. ADDBExecutorTypeCode = "MSSQL" ;
    rqOpenConfiguration. AUserName = Хэрэглэгчийн нэр;
    rqOpenConfiguration. AUserPassword = Нууц үг;
    rsOpenConfiguration = sc. OpenConfiguration(rqOpenConfiguration);

    Үүний зэрэгцээ өгөгдөл дамжуулах, том өгөгдлийг багц болгон хуваах, серверийн хариуг задлах гэх мэт. өөрөө хэрэгжүүлэх хэрэгтэй.

    C# хэл дээр вэб үйлчилгээтэй ажиллах бүрэн жишээг хавсаргав.

    Жишээ өгсөн Александр Кравчукт онцгой талархал илэрхийлье.



    Үүнтэй төстэй нийтлэлүүд