¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo Recopilar Mensajes Individuales en un Lote en SAP Data Intelligence

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 4 Vistas
0
Cargando...
{
		"file": {
			"connection": {
				"configurationType": "Connection Management",
				"connectionID": "/"
			},
			"isDir": false,
			"modTime": "2021-07-08T20:59:17Z",
			"path": "/JW/fire/000000.mp4",
			"size": 26082659
		},
		"fileEvent": "alreadyExists",
		"message.batchIndex": 10,
		"message.batchParent": {
			"message.batchCount": "null",
			"message.batchIndex": 0,
			"message.batchSize": 1,
			"message.batchSizeUnit": "null",
			"message.lastBatch": true
		},
		"message.batchSize": 1,
		"message.lastBatch": true
	}
	

El anterior es el resultado del operador LIST en SAP Data Intelligence. Pero esto se presenta como un mensaje individual (file.message). ¿Cómo puedo recopilar todos los mensajes en un lote? es decir,

Tal vez recopilando todos los nombres de archivo en una lista de Python.

es decir = [00000.mp4, 000001.mp4, ... 0000010.mp4]

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

2 Respuestas

0
Cargando...

Gracias Andy, primero por contarme sobre el operador "From File", hace la vida más fácil en algunos casos 🙂

También necesitaba enviar solo una vez, cuando el lote estuviera completamente terminado. Y encontré mi solución en otra de tus respuestas en el foro.

registros=[]
def on_input(msg):
   
    global registros
    registros.append(msg.attributes['file']['path'])
    if msg.attributes['message.lastBatch']:
        api.send("out", registros)

api.set_port_callback("in", on_input)

Así que muchas gracias

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Rajarshi,

Puedes usar el operador " From File " para extraer el atributo de ruta de un mensaje de archivo. En el operador downstream de python3, por ejemplo, puedes obtener el atributo de ruta recuperando el cuerpo de la siguiente manera:

registros = []
def on_input(msg):
    global registros
    registros.append(msg.body)

O, si no deseas utilizar el operador "From File", puedes recuperar directamente la ruta del mensaje del archivo de entrada de la siguiente manera:

 registros = [] def on_input(msg):    global registros    registros.append(msg.attributes["file"]["path"])

Saludos,

/Andy

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?