• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
  • Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
Twitter Linkedin Instagram

S4PCADEMY_Logo
  • Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
Twitter Linkedin Instagram
#easy-ui5  ·  Technical Articles

Consulta de creación y eliminación de documentos del servicio de gestión de documentos BTP en SAPUI5

By s4pcademy 


en mi blog Descargue y vea documentos PDF desde el servicio de gestión de documentos BTP en SAPUI5. Tengo una demostración de cómo ver un documento PDF desde el Servicio de gestión de documentos BTP (BTP CMIS). Pero los clientes deben cumplir con otros requisitos como consultar, crear y eliminar documentos en BTP CMIS en SAPUI5. Para consultar documentos, podemos usar consulta cmis.(Actualmente, la base de búsqueda de texto en el contenido del archivo no es compatible con BTP CMIS). Demostraré los pasos para realizar estos 3 requisitos, los lectores pueden realizar otros requisitos como consultar, crear, eliminar carpetas también en base a API de CMIS en el centro de API.

Requisito previo:

1, has instalado Cliente CF .

2, has instalado Nodejs .

3, has instalado Herramienta de creación de MTA en la nube .

4, has terminado Configuración inicial para el servicio de gestión de documentos, opción de integración.

5, has terminado Repositorio de incorporación.

6, el destino de la clave de servicio CMIS se ha creado como paso 1 en Blog .

7, has instalado Código VSC (Opcional).

Pasos :

Paso 1: Generar proyecto SAPUI5 con fácil-ui5 .

Use los siguientes comandos para abrir el proyecto con código visual.

Paso 2: cambie la vista MainView.view como el siguiente código:

<mvc:View controllerName="com.sap.cmissearch4.controller.MainView" xmlns:u="sap.ui.unified" xmlns:mvc="sap.ui.core.mvc" displayBlock="true" xmlns="sap.m">
	<Page id="page" title="{i18n>title}">
		<customHeader>
			<Bar id="bar1">
				<contentLeft>
					<Image id="image1" src="https://unpkg.com/fundamental-styles@0.10.0/dist/images/sap-logo.png" />
					<Label id="label1" text="BTP CMIS Search" />
				</contentLeft>
			</Bar>
		</customHeader>
		<content>
			<Table id="table1" inset="true" items="{/results}" busy="{viewModel>/isBusy}">
				<columns>
					<Column id="headcolumn1">
						<header>
							<Label id="tablelabel" text="FileName">
							</Label>
						</header>
					</Column>
					<Column id="headcolumn7">
						<header>
							<Label id="tablelabe7" text="objectId">
							</Label>
						</header>
					</Column>
					<Column id="headcolumn2">
						<header>
							<Label id="tablelabel2" text="createdBy">
							</Label>
						</header>
					</Column>
					<Column id="headcolumn3">
						<header>
							<Label id="tablelabel3" text="ObjectTypeId">
							</Label>
						</header>
					</Column>
					<Column id="headcolumn4">
						<header>
							<Label id="tablelabel4" text="Actions">
							</Label>
						</header>
					</Column>
				</columns>
				<items>
					<ColumnListItem id="items">
						<cells>
							<Text id="text1" text="{succinctProperties/cmis:name}" />
							<Text id="text4" text="{succinctProperties/cmis:objectId}" />
							<Text id="text2" text="{succinctProperties/cmis:createdBy}" />
							<Text id="text3" text="{succinctProperties/cmis:objectTypeId}" />
							<HBox id="actionhbox">
								<Button id="buttondelte" icon="sap-icon://delete" press="pressDelete" />
							</HBox>
						</cells>
					</ColumnListItem>
				</items>
				<headerToolbar>
					<Toolbar id="toolbar1">
						<content>
							<Title id="toolbartitle" text="Ducuments" width="25%" />
							<ToolbarSpacer id="toolspace">
							</ToolbarSpacer>
							<Label id="filenamelabel" width="5%" text="FileName" />
							<Input id="filename" width="40%" />
							<Button id="button1" icon="sap-icon://search" width="15%" text="Search" press="pressQuery" />
							<Button id="button2" icon="sap-icon://add" width="15%" text="UploadFile" press="pressCreate" />
						</content>
					</Toolbar>
				</headerToolbar>
			</Table>
		</content>
	</Page>
</mvc:View>

Paso 3: cambie el controlador MainView.controller.js como el siguiente código:

Nota:

4c0973e8-a785-4789-a048-067d42f97873 es el ID del repositorio creado en el requisito previo 5.

// @ts-nocheck
sap.ui.define(
    ["./BaseController", "sap/m/MessageBox", "sap/ui/model/json/JSONModel", "sap/m/upload/Uploader"],
    /**
     * @param {typeof sap.ui.core.mvc.Controller} Controller
     */
    function (Controller, MessageBox, JSONModel, Uploader) {
        "use strict";

        return Controller.extend("com.sap.cmissearch4.controller.MainView", {
            onInit: function () {
            },
            pressCreate: function (oEvent) {

                this.fileselector().then(file => {
                    var myHeaders = new Headers();
                    var formdata = new FormData();
                    formdata.append("cmisaction", "createDocument");
                    formdata.append("propertyId[0]", "cmis:name");
                    formdata.append("propertyValue[0]", file.name);
                    formdata.append("propertyId[1]", "cmis:objectTypeId");
                    formdata.append("propertyValue[1]", "cmis:document");
                    formdata.append("filename", file.name);
                    formdata.append("_charset", "UTF-8");
                    formdata.append("includeAllowableActions", "False");
                    formdata.append("succinct", "true");
                    formdata.append("media", file, file.name);

                    var requestOptions = {
                        method: 'POST',
                        headers: myHeaders,
                        body: formdata,
                        redirect: 'follow'
                    };

                    fetch("/sdi/browser/4c0973e8-a785-4789-a048-067d42f97873/root", requestOptions)
                        .then(response => response.text())
                        .then(result => {
                            MessageBox.information("File uploaded successfully!");
                            console.log(result);
                            this.pressQuery();

                        }).catch(error => {
                            MessageBox.information(JSON.stringify(error));

                            console.log('error', error)
                        });

                });

            },

            pressQuery: function () {
                var querystate = "";
                var filename = this.byId("filename").getValue();
                if (filename) {
                    querystate = "select * from cmis:document".concat(" where cmis:name = \'").concat(filename).concat("\'");
                } else { querystate = "select * from cmis:document"; }

                var myHeaders = new Headers();
                myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
                var urlencoded = new URLSearchParams();
                urlencoded.append("cmisaction", "query");
                urlencoded.append("succinct", "true");
                urlencoded.append("statement", querystate);
                var requestOptions = {
                    method: 'POST',
                    headers: myHeaders,
                    body: urlencoded,
                    redirect: 'follow'
                };
                fetch("/sdi/browser/4c0973e8-a785-4789-a048-067d42f97873", requestOptions)
                    .then(response => response.json())
                    .then(result => {
                        this.byId("table1").setModel(new JSONModel(result));
                    })
                    .catch(error => console.log('error', error));
            },
            pressDelete: function (oEvent) {
                var oModel = this.byId("table1").getModel();
                // console.log(oModel);
                var filePath = oEvent.getSource().getBindingContext().getPath();

                var objId = oModel.getProperty(filePath).succinctProperties['cmis:objectId'];
                console.log(objId);
                var myHeaders = new Headers();
                myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
                var urlencoded = new URLSearchParams();
                urlencoded.append("cmisaction", "delete");
                urlencoded.append("objectId", objId);
                urlencoded.append("allVersions", "true");

                var requestOptions = {
                    method: 'POST',
                    headers: myHeaders,
                    body: urlencoded,
                    redirect: 'follow'
                };

                fetch("/sdi/browser/4c0973e8-a785-4789-a048-067d42f97873/root", requestOptions)
                    .then(response => response.text())
                    .then(result => {
                        MessageBox.information("Object ".concat(result.trim()).concat(" deleted"));
                        console.log(typeof (result));

                    })
                    .catch(error => console.log('error', error));

            },
            fileselector: function popFileSelector() {
                return new Promise((resolve, reject) => {
                    let input = document.createElement('input');
                    input.value="Please select file";
                    input.type="file";
                    input.onchange = event => {
                        let file = event.target.files[0];
                        resolve(file);
                    };
                    input.click();
                });
            }
        });
    }
);

Paso 4: agregue el enrutador en xs-app.json en la carpeta approuter.

{
  "welcomeFile": "uimodule/index.html",
  "authenticationMethod": "none",
  "logout": {
    "logoutEndpoint": "/do/logout"
  },
  "routes": [

    {
      "source": "^/sdi/(.*)$",
      "target": "$1",
      "authenticationType": "xsuaa",
      "destination": "sdi"  //destination name created CMIS service key
    },
    {
      "source": "^/uimodule/(.*)$",
      "target": "$1",
      "authenticationType": "none",
      "localDir": "uimodule/webapp"
    }
  ]
}

Paso 5: Cree e implemente la aplicación en el tiempo de ejecución de fundición en la nube de BTP con los siguientes 3 comandos.

construir mbt

iniciar sesión

cf desplegar mta_archives/cmissearch4_0.0.1.mtar

Paso 6: pruebe la aplicación implementada en el tiempo de ejecución de fundición en la nube de BTP

¡Los finales!

¡Gracias por tu tiempo!

¡Saludos!

Jacky Liu



Source link


BTPConsultaCreacióndeldocumentoseliminaciónGestiónSAPUI5servicio

Artículos relacionados


PaPMCloud  ·  PaPMCloudWhatsNew  ·  Product Information  ·  SAP Profitability and Performance Management
SAP PaPM Cloud: ¿Qué hay de nuevo a partir del 2023-01-30?
business rule  ·  Business Rule logic  ·  employee central  ·  Technical Articles
Usando la regla comercial, ¿cómo evitar que los usuarios envíen datos dentro del objeto MDF en ciertos días?
Product Information
Ampliación del contenido de ayuda en la aplicación de SAP Marketing Cloud con SAP Enable Now

Deja tu comentario Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

Alternativa a Fiori y oData, Vue y Rest Api
Previo
Elementos del lenguaje de programación Java
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.
Cookies Para que este sitio funcione adecuadamente, a veces instalamos en los dispositivos de los usuarios pequeños ficheros de datos, conocidos como cookies. La mayoría de los grandes sitios web también lo hacen.
Aceptar
Cambiar ajustes
Configuración de Cookie Box
Configuración de Cookie Box

Ajustes de privacidad

Decida qué cookies quiere permitir. Puede cambiar estos ajustes en cualquier momento. Sin embargo, esto puede hacer que algunas funciones dejen de estar disponibles. Para obtener información sobre eliminar las cookies, por favor consulte la función de ayuda de su navegador. Aprenda más sobre las cookies que usamos.

Con el deslizador, puede habilitar o deshabilitar los diferentes tipos de cookies:

  • Bloquear todas
  • Essentials
  • Funcionalidad
  • Análisis
  • Publicidad

Este sitio web hará:

Este sitio web no:

  • Esencial: recuerde su configuración de permiso de cookie
  • Esencial: Permitir cookies de sesión
  • Esencial: Reúna la información que ingresa en un formulario de contacto, boletín informativo y otros formularios en todas las páginas
  • Esencial: haga un seguimiento de lo que ingresa en un carrito de compras
  • Esencial: autentica que has iniciado sesión en tu cuenta de usuario
  • Esencial: recuerda la versión de idioma que seleccionaste
  • Functionality: Remember social media settings
  • Functionality: Remember selected region and country
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions
  • Advertising: Tailor information and advertising to your interests based on e.g. the content you have visited before. (Currently we do not use targeting or targeting cookies.
  • Advertising: Gather personally identifiable information such as name and location
  • Recuerde sus detalles de inicio de sesión
  • Esencial: recuerde su configuración de permiso de cookie
  • Esencial: Permitir cookies de sesión
  • Esencial: Reúna la información que ingresa en un formulario de contacto, boletín informativo y otros formularios en todas las páginas
  • Esencial: haga un seguimiento de lo que ingresa en un carrito de compras
  • Esencial: autentica que has iniciado sesión en tu cuenta de usuario
  • Esencial: recuerda la versión de idioma que seleccionaste
  • Functionality: Remember social media settings
  • Functionality: Remember selected region and country
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions
  • Advertising: Tailor information and advertising to your interests based on e.g. the content you have visited before. (Currently we do not use targeting or targeting cookies.
  • Advertising: Gather personally identifiable information such as name and location
Guardar y cerrar