/AWS1/IF_QQC=>CREATEKNOWLEDGEBASE()¶
About CreateKnowledgeBase¶
Creates a knowledge base.
When using this API, you cannot reuse Amazon AppIntegrations DataIntegrations with external knowledge bases such as Salesforce and ServiceNow. If you do, you'll get an InvalidRequestException error. 
For example, you're programmatically managing your external knowledge base, and you want to add or remove one of the fields that is being ingested from Salesforce. Do the following:
-  Call DeleteKnowledgeBase. 
-  Call DeleteDataIntegration. 
-  Call CreateDataIntegration to recreate the DataIntegration or a create different one. 
-  Call CreateKnowledgeBase. 
Method Signature¶
METHODS /AWS1/IF_QQC~CREATEKNOWLEDGEBASE
  IMPORTING
    !IV_CLIENTTOKEN TYPE /AWS1/QQCNONEMPTYSTRING OPTIONAL
    !IV_NAME TYPE /AWS1/QQCNAME OPTIONAL
    !IV_KNOWLEDGEBASETYPE TYPE /AWS1/QQCKNOWLEDGEBASETYPE OPTIONAL
    !IO_SOURCECONFIGURATION TYPE REF TO /AWS1/CL_QQCSOURCECONF OPTIONAL
    !IO_RENDERINGCONFIGURATION TYPE REF TO /AWS1/CL_QQCRENDERINGCONF OPTIONAL
    !IO_VECTORINGESTIONCONF TYPE REF TO /AWS1/CL_QQCVECTORINGESTIONC00 OPTIONAL
    !IO_SERVERSIDEENCRYPTIONCONF TYPE REF TO /AWS1/CL_QQCSERVERSIDEENCCONF OPTIONAL
    !IV_DESCRIPTION TYPE /AWS1/QQCDESCRIPTION OPTIONAL
    !IT_TAGS TYPE /AWS1/CL_QQCTAGS_W=>TT_TAGS OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_qqccreknowledgebase01
  RAISING
    /AWS1/CX_QQCACCESSDENIEDEX
    /AWS1/CX_QQCCONFLICTEXCEPTION
    /AWS1/CX_QQCSERVICEQUOTAEXCDEX
    /AWS1/CX_QQCUNAUTHORIZEDEX
    /AWS1/CX_QQCVALIDATIONEX
    /AWS1/CX_QQCCLIENTEXC
    /AWS1/CX_QQCSERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Required arguments:¶
iv_name TYPE /AWS1/QQCNAME /AWS1/QQCNAME¶
The name of the knowledge base.
iv_knowledgebasetype TYPE /AWS1/QQCKNOWLEDGEBASETYPE /AWS1/QQCKNOWLEDGEBASETYPE¶
The type of knowledge base. Only CUSTOM knowledge bases allow you to upload your own content. EXTERNAL knowledge bases support integrations with third-party systems whose content is synchronized automatically.
Optional arguments:¶
iv_clienttoken TYPE /AWS1/QQCNONEMPTYSTRING /AWS1/QQCNONEMPTYSTRING¶
A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.
io_sourceconfiguration TYPE REF TO /AWS1/CL_QQCSOURCECONF /AWS1/CL_QQCSOURCECONF¶
The source of the knowledge base content. Only set this argument for EXTERNAL or Managed knowledge bases.
io_renderingconfiguration TYPE REF TO /AWS1/CL_QQCRENDERINGCONF /AWS1/CL_QQCRENDERINGCONF¶
Information about how to render the content.
io_vectoringestionconf TYPE REF TO /AWS1/CL_QQCVECTORINGESTIONC00 /AWS1/CL_QQCVECTORINGESTIONC00¶
Contains details about how to ingest the documents in a data source.
io_serversideencryptionconf TYPE REF TO /AWS1/CL_QQCSERVERSIDEENCCONF /AWS1/CL_QQCSERVERSIDEENCCONF¶
The configuration information for the customer managed key used for encryption.
This KMS key must have a policy that allows
kms:CreateGrant,kms:DescribeKey,kms:Decrypt, andkms:GenerateDataKey*permissions to the IAM identity using the key to invoke Amazon Q in Connect.For more information about setting up a customer managed key for Amazon Q in Connect, see Enable Amazon Q in Connect for your instance.
iv_description TYPE /AWS1/QQCDESCRIPTION /AWS1/QQCDESCRIPTION¶
The description.
it_tags TYPE /AWS1/CL_QQCTAGS_W=>TT_TAGS TT_TAGS¶
The tags used to organize, track, or control access for this resource.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_qqccreknowledgebase01 /AWS1/CL_QQCCREKNOWLEDGEBASE01¶
Domain /AWS1/RT_ACCOUNT_ID Primitive Type NUMC 
Examples¶
Syntax Example¶
This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.
DATA(lo_result) = lo_client->createknowledgebase(
  io_renderingconfiguration = new /aws1/cl_qqcrenderingconf( |string| )
  io_serversideencryptionconf = new /aws1/cl_qqcserversideencconf( |string| )
  io_sourceconfiguration = new /aws1/cl_qqcsourceconf(
    io_appintegrations = new /aws1/cl_qqcappintegrationsc00(
      it_objectfields = VALUE /aws1/cl_qqcobjectfieldslist_w=>tt_objectfieldslist(
        ( new /aws1/cl_qqcobjectfieldslist_w( |string| ) )
      )
      iv_appintegrationarn = |string|
    )
    io_managedsourceconf = new /aws1/cl_qqcmanagedsourceconf(
      io_webcrawlerconfiguration = new /aws1/cl_qqcwebcrawlerconf(
        io_crawlerlimits = new /aws1/cl_qqcwebcrawlerlimits( 123 )
        io_urlconfiguration = new /aws1/cl_qqcurlconfiguration(
          it_seedurls = VALUE /aws1/cl_qqcseedurl=>tt_seedurls(
            ( new /aws1/cl_qqcseedurl( |string| ) )
          )
        )
        it_exclusionfilters = VALUE /aws1/cl_qqcurlfilterlist_w=>tt_urlfilterlist(
          ( new /aws1/cl_qqcurlfilterlist_w( |string| ) )
        )
        it_inclusionfilters = VALUE /aws1/cl_qqcurlfilterlist_w=>tt_urlfilterlist(
          ( new /aws1/cl_qqcurlfilterlist_w( |string| ) )
        )
        iv_scope = |string|
      )
    )
  )
  io_vectoringestionconf = new /aws1/cl_qqcvectoringestionc00(
    io_chunkingconfiguration = new /aws1/cl_qqcchunkingconf(
      io_fixedsizechunkingconf = new /aws1/cl_qqcfixedsizechunkin00(
        iv_maxtokens = 123
        iv_overlappercentage = 123
      )
      io_hierarchicalchunkingconf = new /aws1/cl_qqchierarchicalchun00(
        it_levelconfigurations = VALUE /aws1/cl_qqchierarchicalchun01=>tt_hierarchicalchunkinglevel00(
          ( new /aws1/cl_qqchierarchicalchun01( 123 ) )
        )
        iv_overlaptokens = 123
      )
      io_semanticchunkingconf = new /aws1/cl_qqcsemanticchunking00(
        iv_breakptpercentilethresh = 123
        iv_buffersize = 123
        iv_maxtokens = 123
      )
      iv_chunkingstrategy = |string|
    )
    io_parsingconfiguration = new /aws1/cl_qqcparsingconf(
      io_bedrockfndationmodelconf = new /aws1/cl_qqcbedrockfndationm00(
        io_parsingprompt = new /aws1/cl_qqcparsingprompt( |string| )
        iv_modelarn = |string|
      )
      iv_parsingstrategy = |string|
    )
  )
  it_tags = VALUE /aws1/cl_qqctags_w=>tt_tags(
    (
      VALUE /aws1/cl_qqctags_w=>ts_tags_maprow(
        key = |string|
        value = new /aws1/cl_qqctags_w( |string| )
      )
    )
  )
  iv_clienttoken = |string|
  iv_description = |string|
  iv_knowledgebasetype = |string|
  iv_name = |string|
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lo_knowledgebasedata = lo_result->get_knowledgebase( ).
  IF lo_knowledgebasedata IS NOT INITIAL.
    lv_uuid = lo_knowledgebasedata->get_knowledgebaseid( ).
    lv_arn = lo_knowledgebasedata->get_knowledgebasearn( ).
    lv_name = lo_knowledgebasedata->get_name( ).
    lv_knowledgebasetype = lo_knowledgebasedata->get_knowledgebasetype( ).
    lv_knowledgebasestatus = lo_knowledgebasedata->get_status( ).
    lv_timestamp = lo_knowledgebasedata->get_lastcontentmodtime( ).
    lo_vectoringestionconfigur = lo_knowledgebasedata->get_vectoringestionconf( ).
    IF lo_vectoringestionconfigur IS NOT INITIAL.
      lo_chunkingconfiguration = lo_vectoringestionconfigur->get_chunkingconfiguration( ).
      IF lo_chunkingconfiguration IS NOT INITIAL.
        lv_chunkingstrategy = lo_chunkingconfiguration->get_chunkingstrategy( ).
        lo_fixedsizechunkingconfig = lo_chunkingconfiguration->get_fixedsizechunkingconf( ).
        IF lo_fixedsizechunkingconfig IS NOT INITIAL.
          lv_integer = lo_fixedsizechunkingconfig->get_maxtokens( ).
          lv_integer = lo_fixedsizechunkingconfig->get_overlappercentage( ).
        ENDIF.
        lo_hierarchicalchunkingcon = lo_chunkingconfiguration->get_hierarchicalchunkingconf( ).
        IF lo_hierarchicalchunkingcon IS NOT INITIAL.
          LOOP AT lo_hierarchicalchunkingcon->get_levelconfigurations( ) into lo_row.
            lo_row_1 = lo_row.
            IF lo_row_1 IS NOT INITIAL.
              lv_integer = lo_row_1->get_maxtokens( ).
            ENDIF.
          ENDLOOP.
          lv_integer = lo_hierarchicalchunkingcon->get_overlaptokens( ).
        ENDIF.
        lo_semanticchunkingconfigu = lo_chunkingconfiguration->get_semanticchunkingconf( ).
        IF lo_semanticchunkingconfigu IS NOT INITIAL.
          lv_integer = lo_semanticchunkingconfigu->get_maxtokens( ).
          lv_integer = lo_semanticchunkingconfigu->get_buffersize( ).
          lv_integer = lo_semanticchunkingconfigu->get_breakptpercentilethresh( ).
        ENDIF.
      ENDIF.
      lo_parsingconfiguration = lo_vectoringestionconfigur->get_parsingconfiguration( ).
      IF lo_parsingconfiguration IS NOT INITIAL.
        lv_parsingstrategy = lo_parsingconfiguration->get_parsingstrategy( ).
        lo_bedrockfoundationmodelc = lo_parsingconfiguration->get_bedrockfndationmodelconf( ).
        IF lo_bedrockfoundationmodelc IS NOT INITIAL.
          lv_bedrockmodelarnforparsi = lo_bedrockfoundationmodelc->get_modelarn( ).
          lo_parsingprompt = lo_bedrockfoundationmodelc->get_parsingprompt( ).
          IF lo_parsingprompt IS NOT INITIAL.
            lv_parsingprompttext = lo_parsingprompt->get_parsingprompttext( ).
          ENDIF.
        ENDIF.
      ENDIF.
    ENDIF.
    lo_sourceconfiguration = lo_knowledgebasedata->get_sourceconfiguration( ).
    IF lo_sourceconfiguration IS NOT INITIAL.
      lo_appintegrationsconfigur = lo_sourceconfiguration->get_appintegrations( ).
      IF lo_appintegrationsconfigur IS NOT INITIAL.
        lv_genericarn = lo_appintegrationsconfigur->get_appintegrationarn( ).
        LOOP AT lo_appintegrationsconfigur->get_objectfields( ) into lo_row_2.
          lo_row_3 = lo_row_2.
          IF lo_row_3 IS NOT INITIAL.
            lv_nonemptystring = lo_row_3->get_value( ).
          ENDIF.
        ENDLOOP.
      ENDIF.
      lo_managedsourceconfigurat = lo_sourceconfiguration->get_managedsourceconf( ).
      IF lo_managedsourceconfigurat IS NOT INITIAL.
        lo_webcrawlerconfiguration = lo_managedsourceconfigurat->get_webcrawlerconfiguration( ).
        IF lo_webcrawlerconfiguration IS NOT INITIAL.
          lo_urlconfiguration = lo_webcrawlerconfiguration->get_urlconfiguration( ).
          IF lo_urlconfiguration IS NOT INITIAL.
            LOOP AT lo_urlconfiguration->get_seedurls( ) into lo_row_4.
              lo_row_5 = lo_row_4.
              IF lo_row_5 IS NOT INITIAL.
                lv_weburl = lo_row_5->get_url( ).
              ENDIF.
            ENDLOOP.
          ENDIF.
          lo_webcrawlerlimits = lo_webcrawlerconfiguration->get_crawlerlimits( ).
          IF lo_webcrawlerlimits IS NOT INITIAL.
            lv_integer = lo_webcrawlerlimits->get_ratelimit( ).
          ENDIF.
          LOOP AT lo_webcrawlerconfiguration->get_inclusionfilters( ) into lo_row_6.
            lo_row_7 = lo_row_6.
            IF lo_row_7 IS NOT INITIAL.
              lv_urlfilterpattern = lo_row_7->get_value( ).
            ENDIF.
          ENDLOOP.
          LOOP AT lo_webcrawlerconfiguration->get_exclusionfilters( ) into lo_row_6.
            lo_row_7 = lo_row_6.
            IF lo_row_7 IS NOT INITIAL.
              lv_urlfilterpattern = lo_row_7->get_value( ).
            ENDIF.
          ENDLOOP.
          lv_webscopetype = lo_webcrawlerconfiguration->get_scope( ).
        ENDIF.
      ENDIF.
    ENDIF.
    lo_renderingconfiguration = lo_knowledgebasedata->get_renderingconfiguration( ).
    IF lo_renderingconfiguration IS NOT INITIAL.
      lv_uri = lo_renderingconfiguration->get_templateuri( ).
    ENDIF.
    lo_serversideencryptioncon = lo_knowledgebasedata->get_serversideencryptionconf( ).
    IF lo_serversideencryptioncon IS NOT INITIAL.
      lv_nonemptystring = lo_serversideencryptioncon->get_kmskeyid( ).
    ENDIF.
    lv_description = lo_knowledgebasedata->get_description( ).
    LOOP AT lo_knowledgebasedata->get_tags( ) into ls_row_8.
      lv_key = ls_row_8-key.
      lo_value = ls_row_8-value.
      IF lo_value IS NOT INITIAL.
        lv_tagvalue = lo_value->get_value( ).
      ENDIF.
    ENDLOOP.
    lv_syncstatus = lo_knowledgebasedata->get_ingestionstatus( ).
    LOOP AT lo_knowledgebasedata->get_ingestionfailurereasons( ) into lo_row_9.
      lo_row_10 = lo_row_9.
      IF lo_row_10 IS NOT INITIAL.
        lv_nonemptystring = lo_row_10->get_value( ).
      ENDIF.
    ENDLOOP.
  ENDIF.
ENDIF.