Примеры запросов с типом данных Stream

Сложный

Элементы с типом данных Stream:

  • Изображения.
  • Файлы.
  • Двоичные данные.

Для работы с типом данных Stream используются стандартные методы:

  • GET — получение данных.
  • POST — добавление данных.
  • PUT — изменение данных.
  • DELETE — удаление данных.

Для отображения результата выполнения запросов к Creatio при работе с типом данных Stream необходимо очистить кэш браузера.

Получить данные 

Пример. Используя сервис работы с данными OData, получить фото контакта "New user".

Реализация примера 

  1. Получите идентификатор фото контакта "New user".

    Фото контакта содержится в колонке [Data] таблицы [SysImage] базы данных. Чтобы получить идентификатор фото контакта "New user", выполните следующий SQL-запрос.

    select Id from SysImage where Id = (select PhotoId from Contact where Name = 'New user')
    
    29FE7EDF-4DB9-4E09-92B0-018047BA1F71
    
  2. Получите фото контакта "New user".

    Чтобы получить фото контакта "New user", выполните следующий запрос.

    // Получить значение поля [Data] экземпляра объекта с [Id] 29FE7EDF-4DB9-4E09-92B0-018047BA1F71 коллекции [SysImage].
    GET http://mycreatio.com/0/odata/SysImage(29FE7EDF-4DB9-4E09-92B0-018047BA1F71)/Data
    
    Status: 200 OK
    
    scr_ContactPhoto.png
    scr_GetImage.png

Добавить данные 

Пример. Используя сервис работы с данными OData, добавить контакт "New user". Затем добавить контакту фото.

scr_NewContactPhoto.png

Реализация примера 

  1. Добавьте контакт "New user".

    Все контакты содержатся в таблице [Contact] базы данных. Чтобы добавить контакт "New user", выполните следующий запрос.

    // Добавить экземпляр объекта коллекции [Contact].
    POST http://mycreatio.com/0/odata/Contact
    
    Accept: application/json; odata=verbose
    Content-Type: application/json; odata=verbose; IEEE754Compatible=true
    BPMCSRF: OpK/NuJJ1w/SQxmPvwNvfO
    
    {
        // В поле [Name] записать имя контакта "New user".
        "Name": "New user"
    }
    
    Status: 201 Created
    
    {
        "@odata.context": "http://mycreatio.com/0/odata/$metadata#Contact/$entity",
        "Id": "4c63c8fa-467b-48a6-973f-b2069298404f",
        "Name": "New user",
        "OwnerId": "410006e1-ca4e-4502-a9ec-e54d922d2c00",
        "CreatedOn": "2021-01-14T08:33:29.009023Z",
        "CreatedById": "410006e1-ca4e-4502-a9ec-e54d922d2c00",
        "ModifiedOn": "2021-01-14T08:33:29.009023Z",
        "ModifiedById": "410006e1-ca4e-4502-a9ec-e54d922d2c00",
        "ProcessListeners": 0,
        "Dear": "",
        "SalutationTypeId": "00000000-0000-0000-0000-000000000000",
        "GenderId": "00000000-0000-0000-0000-000000000000",
        "AccountId": "00000000-0000-0000-0000-000000000000",
        "DecisionRoleId": "00000000-0000-0000-0000-000000000000",
        "TypeId": "00000000-0000-0000-0000-000000000000",
        "JobId": "00000000-0000-0000-0000-000000000000",
        "JobTitle": "",
        "DepartmentId": "00000000-0000-0000-0000-000000000000",
        "BirthDate": "0001-01-01T00:00:00Z",
        "Phone": "",
        "MobilePhone": "",
        "HomePhone": "",
        "Skype": "",
        "Email": "",
        "AddressTypeId": "00000000-0000-0000-0000-000000000000",
        "Address": "",
        "CityId": "00000000-0000-0000-0000-000000000000",
        "RegionId": "00000000-0000-0000-0000-000000000000",
        "Zip": "",
        "CountryId": "00000000-0000-0000-0000-000000000000",
        "DoNotUseEmail": false,
        "DoNotUseCall": false,
        "DoNotUseFax": false,
        "DoNotUseSms": false,
        "DoNotUseMail": false,
        "Notes": "",
        "Facebook": "",
        "LinkedIn": "",
        "Twitter": "",
        "FacebookId": "",
        "LinkedInId": "",
        "TwitterId": "",
        "ContactPhoto@odata.mediaEditLink": "Contact(4c63c8fa-467b-48a6-973f-b2069298404f)/ContactPhoto",
        "ContactPhoto@odata.mediaReadLink": "Contact(4c63c8fa-467b-48a6-973f-b2069298404f)/ContactPhoto",
        "ContactPhoto@odata.mediaContentType": "application/octet-stream",
        "TwitterAFDAId": "00000000-0000-0000-0000-000000000000",
        "FacebookAFDAId": "00000000-0000-0000-0000-000000000000",
        "LinkedInAFDAId": "00000000-0000-0000-0000-000000000000",
        "PhotoId": "00000000-0000-0000-0000-000000000000",
        "GPSN": "",
        "GPSE": "",
        "Surname": "user",
        "GivenName": "New",
        "MiddleName": "",
        "Confirmed": true,
        "IsNonActualEmail": false,
        "Completeness": 0,
        "LanguageId": "6ebc31fa-ee6c-48e9-81bf-8003ac03b019",
        "Age": 0
    }
    
    scr_CreateUser.png

    Идентификатор контакта "New user" "4c63c8fa-467b-48a6-973f-b2069298404f".

  2. Добавьте фото контакта "New user".

    Фото контакта должно содержаться в колонке [Data] таблицы [SysImage] базы данных. Для созданного контакта запись в таблице отсутствует, поэтому ее необходимо добавить. Чтобы добавить запись в таблицу, выполните следующий запрос.

    // Добавить экземпляр объекта коллекции [SysImage].
    POST http://mycreatio.com/0/odata/SysImage
    
    Accept: application/json; odata=verbose
    Content-Type: application/json; odata=verbose; IEEE754Compatible=true
    BPMCSRF: OpK/NuJJ1w/SQxmPvwNvfO
    
    {
        // В поле [Name] записать название файла с фото контакта.
        "Name": "scr_NewContactPhoto.png",
        // В поле [Id] записать произвольный идентификатор записи в таблице [SysImage].
        "Id": "410006E1-CA4E-4502-A9EC-E54D922D2C01",
        // В поле [MimeType] записать тип файла с фото контакта.
        "MimeType": "image/png"
    }
    
    Status: 201 Created
    
    {
        "@odata.context": "http://mycreatio.com/0/odata/$metadata#SysImage/$entity",
        "Id": "410006e1-ca4e-4502-a9ec-e54d922d2c01",
        "CreatedOn": "2021-01-14T08:52:47.7573789Z",
        "CreatedById": "410006e1-ca4e-4502-a9ec-e54d922d2c00",
        "ModifiedOn": "2021-01-14T08:52:47.7573789Z",
        "ModifiedById": "410006e1-ca4e-4502-a9ec-e54d922d2c00",
        "ProcessListeners": 0,
        "UploadedOn": "0001-01-01T00:00:00Z",
        "Name": "scr_NewContactPhoto.png",
        "Data@odata.mediaEditLink": "SysImage(410006e1-ca4e-4502-a9ec-e54d922d2c01)/Data",
        "Data@odata.mediaReadLink": "SysImage(410006e1-ca4e-4502-a9ec-e54d922d2c01)/Data",
        "Data@odata.mediaContentType": "application/octet-stream",
        "MimeType": "image/png",
        "HasRef": false,
        "PreviewData@odata.mediaEditLink": "SysImage(410006e1-ca4e-4502-a9ec-e54d922d2c01)/PreviewData",
        "PreviewData@odata.mediaReadLink": "SysImage(410006e1-ca4e-4502-a9ec-e54d922d2c01)/PreviewData",
        "PreviewData@odata.mediaContentType": "application/octet-stream"
    }
    

    В таблицу [SysImage] базы данных была добавлена запись, но колонка [Data] содержит значение "0х".

    Изображение необходимо передать в теле запроса, а название изображения должно совпадать из значением поля [Name]. Чтобы добавить фото контакта в колонку [Data], выполните следующий запрос.

    // Изменить значение поля [Data] экземпляра объекта с [Id] 410006e1-ca4e-4502-a9ec-e54d922d2c01 коллекции [SysImage].
    PUT http://mycreatio.com/0/odata/SysImage(410006e1-ca4e-4502-a9ec-e54d922d2c01)/Data
    
    Accept: application/json; text/plain; */*
    Content-Type: application/octet-stream; IEEE754Compatible=true
    BPMCSRF: OpK/NuJJ1w/SQxmPvwNvfO
    
    scr_NewContactPhoto.png
    Status: 200 OK
    
  3. Выполните привязку добавленного фото к контакту "New user".

    Для выполнения привязки фото к контакту "New user" необходимо установить связь между полем [Data] таблицы [SysImage] и полем [PhotoId] таблицы [Contact]. Чтобы установить привязку, выполните следующий запрос.

    // Изменить поле [PhotoId] экземпляра объекта с [Id] 4c63c8fa-467b-48a6-973f-b2069298404f коллекции [Contact].
    PATCH http://mycreatio.com/0/odata/Contact(4c63c8fa-467b-48a6-973f-b2069298404f)
    
    Accept: application/json;odata=verbose
    Content-Type: application/json; odata=verbose; IEEE754Compatible=true
    BPMCSRF: OpK/NuJJ1w/SQxmPvwNvfO
    
    {
        // В поле [PhotoId] записать идентификатор записи в таблице [SysImage].
        "PhotoId": "410006e1-ca4e-4502-a9ec-e54d922d2c01"
    }
    
    Status: 204 No Content
    
    scr_AddImage.png

Чтобы добавить фото существующему контакту выполните:

  1. POST-запрос на добавление экземпляра объекта коллекции [SysImage].
  2. PUT-запрос на изменение значения поля [Data] экземпляра объекта коллекции [SysImage].
  3. PATCH-запрос на выполнение привязку добавленного фото к контакту "New user".

Изменить данные 

Пример. Используя сервис работы с данными OData, изменить фото существующего контакта "New user".

scr_NewContactPhoto.png

Реализация примера 

  1. Получите идентификатор фото контакта "New user".

    Фото контакта содержится в колонке [Data] таблицы [SysImage] базы данных. Чтобы получить идентификатор фото контакта "New user", выполните следующий SQL-запрос.

    select Id from SysImage where Id = (select PhotoId from Contact where Name = 'New user')
    
    29FE7EDF-4DB9-4E09-92B0-018047BA1F71
    
  2. Измените фото контакта "New user".

    Чтобы изменить фото контакта "New user", выполните следующий запрос.

    // Изменить поле [Data] экземпляра объекта с [Id] 29FE7EDF-4DB9-4E09-92B0-018047BA1F71 коллекции [SysImage].
    PUT http://mycreatio.com/0/odata/SysImage(29FE7EDF-4DB9-4E09-92B0-018047BA1F71)/Data
    
    Accept: application/json; text/plain; */*
    Content-Type: application/octet-stream; IEEE754Compatible=true
    BPMCSRF: OpK/NuJJ1w/SQxmPvwNvfO
    
    scr_NewContactPhoto.png
    Status: 200 OK
    
    scr_PutImage.png

Удалить данные 

Пример. Используя сервис работы с данными OData, удалить фото контакта "New user".

Реализация примера 

  1. Получите идентификатор фото контакта "New user".

    Фото контакта содержится в колонке [Data] таблицы [SysImage] базы данных. Чтобы получить идентификатор фото контакта "New user", выполните следующий SQL-запрос.

    select Id from SysImage where Id = (select PhotoId from Contact where Name = 'New user')
    
    29FE7EDF-4DB9-4E09-92B0-018047BA1F71
    
  2. Удалить фото контакта "New user".

    Чтобы удалить фото контакта "New user", выполните следующий запрос.

    // Удалить значение поля [Data] экземпляра объекта с [Id] 29FE7EDF-4DB9-4E09-92B0-018047BA1F71 коллекции [SysImage].
    DELETE http://mycreatio.com/0/odata/SysImage(29FE7EDF-4DB9-4E09-92B0-018047BA1F71)/Data
    
    Accept: application/json; text/plain; */*
    Content-Type: application/json; charset=utf-8; IEEE754Compatible=true
    BPMCSRF: OpK/NuJJ1w/SQxmPvwNvfO
    
    Status: 204 No Content
    
    scr_DeleteImage.png