Формирование действия ExecuteSearch Soap для Filenet - PullRequest
1 голос
/ 06 апреля 2020

Я написал сервис nodeJs и попытался использовать библиотеку strong- soap, чтобы попытаться выполнить ExecuteSearch в IBM Fil enet. Это функция, которую я написал с аргументами, чтобы попытаться выполнить поиск:

    filenetResponse = await client.FNCEWS35Service.FNCEWS35InlinePort.ExecuteSearch({
      ExecuteSearchRequest: {
        SelectionFilter: {
          IncludeProperties: { $attributes: { maxRecursion: 1, maxSize: 1, maxElements: 1 }, $value: 'test' },
          IncludeTypes: { $attributes: { maxRecursion: 1, maxSize: 1, maxElements: 1 }, $value: 'test' },
          ExcludeProperties: 'test',
          $attributes: {
            maxRecursion: 1,
            maxSize: 1,
            maxElements: 1
          }
        },
        $attributes: {
          maxElements: 1,
          continueFrom: 'test',
          continuable: true
        }
      }
    });

Я получаю следующую ошибку при отправке в Fil enet:

    "root": {
        "Envelope": {
            "Body": {
                "Fault": {
                    "faultcode": "e:Server",
                    "faultstring": "class com.filenet.api.exception.EngineRuntimeException:Web services value for {http://www.w3.org/2001/XMLSchema-instance}type expected. Path when error was detected ExecuteSearchRequest.",
                    "detail": {
                        "ErrorStack": {
                            "ErrorName": "REQUIRED_VALUE_ABSENT",
                            "ErrorRecord": {
                                "Source": "com.filenet.api.exception.EngineRuntimeException",
                                "Description": "Web services value for {http://www.w3.org/2001/XMLSchema-instance}type expected. Path when error was detected ExecuteSearchRequest.",
                                "Diagnostic": [
                                    {
                                        "$attributes": {
                                            "diagnosticType": "exceptionCode"
                                        },
                                        "$value": "TRANSPORT_WSI_VALUE_EXPECTED"
                                    },

Я сравнил аргумент, который я отправляю, с описанием executeteSearch (), но не смог найти пропущенный тип, который вызывает ошибку.

Я думал, что это заголовок, поэтому я попытался добавив это тоже, но это все равно дает мне ту же ошибку:

    client.addSoapHeader({ id: '', NoTxResume: '' }, 'TxId');
    client.addSoapHeader({ Locale: 'en-us', Timezone: '' }, 'Localization');

Я начинаю задумываться, стоит ли мне продолжать пытаться или просто отказаться от этой идеи и перейти к использованию Java, поскольку есть рабочие примеры что я могу использовать.

...