miércoles, 27 de noviembre de 2013

Cuando accedes al SUPM se queda enganchado en Persistence Service: retrieving object.

Tras instalar el SUPM, al acceder al SUPM se queda enganchado dando el siguiente mensaje "Persistence Service: retrieving object. "
Uno de los pasos que tienes que hacer es configurar los webservices y hacer que accedan con un usuario que creas para que conecte con el BI. Al asignarle los roles estándares, debes revisar que tiene los perfiles generados, porque si no es cuando te da este error.


Para poder ver cual es el error concreto, podrás acceder al defauttrace de la instancia JAVA o acceder a la transacción SRT_UTIL en la instancia ABAP


En donde se ve que es un problema de permisos con el usuario con el que conectas a los webservices.  Se generan los perfiles y ya se ve que entra sin problemas. Si el problema persiste, debes revisar la configuración de tus webservices desde las transacciones WSADMIN y WSCONFIG, aunque veras el error en la transacción SRT_UTIL
Leer más...

martes, 19 de noviembre de 2013

Como modificar RFC protegidas del tipo workflow

Existen algunas RFC las cuales solo pueden ser modificadas desde el punto de parametrización concreto y no desde la SM59, este el caso de la RFC del workflow (SWF_RFC_DEST) o de la propia STMS.


Existe una forma para hacerlo desde la propia SM59 y es escribiendo en el cuadro de transacciones TOGL esto lo que hará será habilitar la RFC en modo modificación.


Leer más...

martes, 1 de octubre de 2013

Como descargar parches desde MOPZ o desde la sapnet

Hoy os contaré como bajar parches, ya sea desde el MOPZ del solution manager o de una forma menos detallada desde la sapnet.

Para la descarga desde el MOPZ, nos iremos al SOLUTION MANAGER, transacción SOLMAN_WORKCENTER al centro de trabajo – Control de modificaciones. Pulsaremos en nueva operación de mantenimiento, abriéndose el MAINTENANCE OPTIMIZER.


Seleccionamos la solución sobre la que vamos a aplicar los parches y elegiremos el sistema (esto claro esta deberá estar ya configurado). Pulsamos sobre continuar. 


Seleccionaremos la opción manual puesto que solo queremos bajarnos un número concreto de parches, si escogiésemos la opción automática sería por si queremos ir a un stack o paquete de mejora concreto.


Ahora seleccionaremos los parches a bajarnos, pulsando sobre "seleccionar directamente ficheros para versión de producto"


Y nos llevará directamente al SWDC de la versión de nuestro sistema, seleccionando los parches que queramos.


Una vez seleccionados, pulsaremos continuar y confirmaremos la cola y procederemos a descargar los parches.


Aquí cortaremos el MOPZ, dado que en nuestro caso no implementaremos los parches todavía, cuando subas los parches, puedes ir de nuevo al MOPZ y actualizar los datos con la fecha en la que se hizo. De esta forma, puedes cerrar la operación de mantenimiento y tener un histórico de todo lo que se realizo en tus sistemas.
Otra opción para todo esto, es seleccionar los parches directamente desde la sapnet y luego con la función /TMWFLOW/MO_UI_BASKET_AUTHORIZ ejecutarla en tu solution manager desde la SE37 para confirmar tus parches y poder bajarlos.
Leer más...

viernes, 27 de septiembre de 2013

Extraction (messages): Missing messages

Bueno, aquí os dejo un problemilla que me he encontrado algunas veces al lanzar cargas en BW, quedandose enganchadas dando este mensaje en la parte del monitor, Extraction (messages): Missing messages. 
El problema es que las RFC transaccionales (SM58) se quedan en estado "Transaction recorded" y no se ejecutan, haciendo que no lleguen los idocs a los sistemas backend.
Lo primero que haremos será ver porque no se lanzan desde la SM58, puede ser que el usuario este bloqueado, o como en caso que os voy a contar, que no haya recursos suficientes. Una vez resuelto, podemos ejecutar las LUWs directamente desde la SM58 .
En el caso de que no haya recursos lo veremos desde la SMQR apareciéndonos en rojo el estado del recurso para las tRFC/qRFC, es decir no hay wp disponibles para atender las peticiones.



Tras poner más workprocess de dialogo, refrescamos y veremos que ya tiene los recursos necesarios y el status nos dará OK, ya solo nos quedará relanzar los las LUWs desde la SM58.




Leer más...

viernes, 30 de agosto de 2013

Como ver los workitem que tiene un usuario en su bandeja de entrada

Hoy algo sencillito, pero creo que interesante... Para ver la bandeja de entrada de un usuario y ver que workitem tiene. Nos iremos a la transacción SE37 y ejecutaremos la función SWK_LOCAL_INBOX_GET.
Rellenaremos el usuario el cual queremos ver su bandeja


 y como resultado nos dará los WI junto con las tareas que ejecuta, que nos puede venir bien, para poder identificarlos dentro la configuración (xml) del UWL.


Leer más...

jueves, 29 de agosto de 2013

Al crear repositorio esclavo, aparece deshabilitada la opción o da error "master is broken"

Hoy me ha pasado una cosa curiosa, he tenido que crear un repositorio esclavo y el maestro no me daba la opción... estaba deshabilitada. Y si me desconectaba del repositorio maestro y lo intentaba desde ahí, me daba el error "master is broken".
Tras investigar un poco, el problema venía porque el maestro se había quedado pillado..., aunque se parasen los repositorios o el propio MDM, seguía dando el error.
Solución, desmontar el repositorio maestro,


 volver a montarlo,


nos conectamos y lo normalizamos,


 de esta forma nos permitirá volver a crear el repositorio esclavo


Cuando termine de crear el esclavo, tendremos que montarlo (cuidado con no utilizar puertos ocupados porque lo montará pero dará errores al arrancar) y ya está nuestro catalogo maestro tendrá creado su esclavo.

Leer más...

miércoles, 24 de julio de 2013

Import .PAR .EPA o .KMC desde portal

Hoy, os contare, sin entrar en mucho detalle porque tampoco tiene mucho que contar, como subir ficheros .epa, .par o .kmc en un SAP Portal.

Para subir un .epa lo haremos logandonos en el portal http://hostname:5<nr>00/irj/portal. Ya sabeis que el puerto se compone de 5 seguido de numero de sistema de nuestra instancia java y 00. Es decir si la instancia java es la 00, nuestro puerto de conexión será 50000. Dicho esto, pues al lio...

Nos iremos a Gestión de Sistema --> Transporte --> Paquetes de transporte --> Import, aqui seleccionaremos mandante si tenemos el .epa en nuestro pc y le cargaremos para darle luego despues a importar.



Para el .par nos iremos a Gestión de Sistema --> Soporte --> Portal Runtime --> Administrative console, y aquí especificaremos el .par para subir, pulsando sobre Upload


Y por último para el .kmc, nos iremos a Gestión de contenidos --> Contenido de KM --> Importar --> Upload de paquete, seleccionaremos el fichero del km y lo subiremos pulsando Efectuar un upload


Tener en cuenta que quizas os toque limpiar la cache si no os pilla los cambios... si queremos profundizar esto puede tener mucha más miga pero lo básico pues esta contado, otro día me extenderé más.

Leer más...

viernes, 19 de julio de 2013

Resize y rename de LOGFILES

Para renombrar o mover un logfiles, y también se puede utilizar esto para los datafiles, procederemos de la siguiente forma.
Lo primero será para la base de datos y montarla, para poder trabajar sobre ella.
SQL> SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> STARTUP MOUNT
ORACLE instance started.

Total System Global Area  167772160 bytes
Fixed Size                   787968 bytes
Variable Size              61864448 bytes
Database Buffers          104857600 bytes
Redo Buffers                 262144 bytes
Database mounted.

Una vez hecho esto, solo tendremos que lanzar la sentencia de renombrado de los logfiles y abrir la base de datos.

SQL> ALTER DATABASE RENAME FILE '/oracle/SID/mirrlogA/log_g11m1.dbf' TO '/oracle/SID/mirrlogA/log_g11m2.dbf';

Database altered.

SQL> ALTER DATABASE OPEN;

Database altered.

Como ya he comentado antes, esto se puede utilizar si lo que quieres es renombrar o mover un datafile.

Si lo que queremos es redimensionar un logfile procederemos de la siguiente manera.

Lo primero sera ver cual es el logfile activo, puesto que ese no prodemos borrarlo para recrearlo.

SQL> connect / as sysdba

SQL> select group#, bytes, status from v$log;
GROUP# BYTES STATUS 
---------- ---------- ---------------- 
1 200428800 INACTIVE 
2 200428800 CURRENT 
3 200428800 INACTIVE 

Como se ve en la sentencia, podremos borrar el grupo 1 y 3, puesto que el 2 esta en uso, así procederemos  a trabajar con esos grupos y luego moveremos los logfile para dejar el 2 en INACTIVE.

SQL> alter database drop logfile group 1;

SQL> alter database add logfile group 1('/oracle/SID/origlogB/log_g14m1.dbf','/oracle/SID/mirrlogB/log_g14m2.dbf') size 50M reuse;

Este paso lo haremos con todos los logfile que tengamos. Borrando y recreando los distintos grupos. Cuando lleguemos al que esta activo, lo que haremos sera moverlo con alter system switch logfile; (lanzarlo varias veces y veréis que se va moviendo el CURRENT)   y comprobar que esta en estado inactivo para poder trabajar con él.

SQL>ALTER SYSTEM SWITCH LOGFILE;

System altered.

SQL> select group#, bytes, status from v$log;
GROUP# BYTES STATUS 
---------- ---------- ---------------- 
1 52428800 CURRENT 
2 200428800 INACTIVE
3 52428800 INACTIVE 

Una vez que apliquemos los pasos anteriores con este grupo, comprobaremos de nuevo que el tamaño fue cambiado en todos los logfiles.
SQL> select group#, bytes, status from v$log;
GROUP# BYTES STATUS 
---------- ---------- ---------------- 
1 52428800 CURRENT 
2 52428800 INACTIVE
3 52428800 INACTIVE 

Si queremos ver la ubicacion de los logfiles, lo haremos con la siguiente sentencia

SQL> select group#, member from v$logfile;



Leer más...

martes, 25 de junio de 2013

SCC8 - Export-import de usuarios

Hoy escribiré sobre una cosa sencilla y rápida pero también muy útil a la hora de hacer refrescos, o simplemente llevarnos usuarios y roles. Y es la realización de un export-import de usuarios.
Lo primero de todo será abrir el mandante para que permita copiar mandantes, esto lo haremos desde la transacción SCC4, marcando este apartado



Después iremos a la transacción SCC8 para realizar la copia de mandante, donde escogeremos el sistema destino y el perfil SAP_USER os recomiendo lanzarlo en fondo para no tener problemas. Esto nos generará unas órdenes de transporte que serán las que luego importaremos.




Una vez hecho, esto si lo que hemos realizado es un refresco o copia homogénea del sistema pues lo que haremos será transportar la orden en cuestión desde la STMS como si fuese una orden normal y corriente, y para acabar con el proceso de import lanzaremos desde la transacción SCC8 el import de mandante. 
Si no hacemos esto, a parte de que no acabaremos el proceso de export/import nos dará errores con la direcciones de la empresa entre otras.




Leer más...

sábado, 22 de junio de 2013

Funciones curiosas de SAP (parte 1)

Hoy os contare algunas de las funciones que me han venido bien en más de una ocasión, seguro que muchas las conocéis pero a lo mejor alguna os viene bien...

TH_POPUP: Esta función nos permite mandar mensajes individuales a usuarios conectados al sistema, apareciendoles única y exclusivamente a ellos y mediante una ventana emergente.




/TMWFLOW/MO_UI_BASKET_AUTHORIZ: Función utilizada en el solution manager para poder aprobar directamente el software añadido al SAP download basket de una forma rápida y directa, indicando solo la RFC del SAPOSS. (solo para solution manager)



ARCHIVFILE_SERVER_TO_CLIENT: Función que nos permite pasar ficheros del servidor donde corre la instancia SAP al cliente desde el que lancemos el saplogon. Cuidado de marcar el flag de mayúsculas/minúsculas en sistemas UNIX


ARCHIVFILE_CLIENT_TO_SERVER: Función que nos permite pasar ficheros del cliente desde el que se lanza el saplogon al servidor donde corre la instancia SAP (por supuesto solo nos dejará escribir en aquellos directorios donde nuestro usuario <sid>adm tenga permisos. Cuidado de marcar el flag de mayúsculas/minúsculas en sistemas UNIX



SAPWL_WORKLOAD_REORG: Función para sincronizar las tablas de estadísticas MONI (solo para versiones 640 y 4.6). A veces cuando realizamos copias homogéneas, nos encontramos que en la ST03N siguen apareciendo datos de servidores que aun borrando sus datos históricos siguen mostrando información. Lanzando este report se soluciona este problema. Os dejo la nota SAP que explica dicho error Note 374454 - Transaction ST03N displays servers that do not exist

TH_GREP: Función usada para hacer busquedas, pero que en versiones antiguas nos permitirá abrir una shell en sistemas unix con el usuario <sid>adm. (Solo para versiones 4.6 y 6.40, y que todavía no se aplicado el parche de seguridad, cosa que recomiendo hacer para que no dejar puertas abiertas).

Lo primero será abrirnos unas xwindows (ej. REFLECTION) y desde la SE37 ejecutaremos la funcion TH_GREP y en STRING pondremos `export DISPLAY=IP:0.0 && xterm`   sustituyendo la IP por la nuestra de nuestro PC.


Para cerrarlo deberemos parar directamente la transacción donde corre SE37, con "Stop Transaction"
Si no tenemos acceso a la SE37 podremos intentarlo desde la SM51


Y en la ventana que nos abrá, pondremos la sentencia anterior, igualmente, necesitaremos tener unas xwindows abiertas y pulsamos Find.



Leer más...

viernes, 21 de junio de 2013

Como renovar el certificado de nuestro saprouter

Lo primero que haremos será renombrar los siguiente ficheros local.pse, scert y cetreq ubicados en donde tengamos instalado nuestros saprouter, puesto que habrá que generarlos de nuevo.
Después nos iremos a la sapnet http://service.sap.com/saprouter-sncadd  y pulsaremos en Apply now

 

Generaremos el certificado desde el servidor del saprouter con el siguiente comando
D:\usr\sap\saprouter>sapgenpse get_pse -v -r certreq –p local.pse "CN=SAProuter, OU=000000000, OU=SAProuter, O=SAP, C=DE"
 Got absolute PSE path "D:\usr\sap\saprouter\local.pse".
Please enter PIN:
Please reenter PIN:
 Supplied distinguished name: "CN=SAProuter, OU=000000000, OU=SAProuter, O=SAP,
 C=DE"
 Creating PSE with format v2 (default)
 Generating key (RSA, 1024-bits) ... succeeded.
 certificate creation... ok
 PSE update... ok
 PKRoot... ok
Generating certificate request... ok.

 Luego abriremos el fichero cetreq y lo copiaremos en la sapnet, el cual nos devolvera el contenido ya firmado.


 y será el que tendremos que copiar en el srcert y luego importaremos con el siguiente comando. 
D:\usr\sap\saprouter>sapgenpse import_own_cert -c srcert -p local.pse
CA-Response successfully imported into PSE "D:\usr\sap\saprouter\local.pse"

D:\usr\sap\saprouter>sapgenpse seclogin -p local.pse
 running seclogin with USER="saprouter"
 Added SSO-credentials for PSE "D:\usr\sap\saprouter\local.pse"
   "CN=SAProuter, OU=000000000, OU=SAProuter, O=SAP, C=DE"

Con este comando comprobaremos que se instalo correctamente el certificado. 
D:\usr\sap\saprouter>sapgenpse get_my_name -v -n Issuer
 Opening PSE "D:\usr\sap\saprouter\local.pse"...
 PSE (v2) open ok.
 Retrieving my certificate... ok.
 Getting requested information... ok.
SSO for USER "saprouter"
  with PSE file "D:\usr\sap\saprouter\local.pse"
Issuer  : CN=SAProuter CA, OU=SAProuter, O=SAP, C=DE
Leer más...

jueves, 20 de junio de 2013

Puertos SAP

Hoy os dejare una tabla bastante interesante de los puertos estándar utilizados por SAP:

Service
Port Number / Service Name
Default
Range (min-max)
Comment
Web AS (SAP Web Application Server)
Dispatcher
32NN
sapdpNN
3200
3200-3299
sapdp00-sapdp99
SAP Dispatcher, used by SAP GUI for Windows and Java
Gateway
33NN
sapgwNN
3300
3300-3399
sapgw00-sapgw99
SAP gateway, used for CPIC and RFC communication
ICM HTTP
80NN
8000
Free


The usual port for HTTP is 80. You can configure the system to use port number 80 after installation.
ICM HTTPS
443NN (convention for multiple instances)
Not active
Free
The port is not configured during installation. The usual port for HTTPS 443. If you want to use HTTPS, you must configure it manually.
ICM SMTP
25
Not active
25 (no other port generally supported by SMTP)
The port is not configured during installation. The usual port for SMTP is 25. If you want to use SMTP, you must configure it manually. Only one instance per host should offer SMTP service.
Message Server
36NN
sapmsSID
3600
sapmsC11
Free
sapms<any SID>

Only CI (central instance) Service names can be reassigned in /etc/services to an arbitrary value after installation.
Message Server HTTP
81NN
8100
Free
Only CI (central instance) Can be used to retrieve system information via HTTP
Message Server HTTPS
444NN (convention for multiple instances)
Not active
Free
Only CI (central instance) The port is not configured during installation.
Puertos Internos
Dispatcher
32NN/UDP
3200/UDP
3200-3299/UDP
Only used on local host for signaling dispatcher, never seen on the network
Gateway
33NN/UDP
3300/UDP
3300-3399/UDP
Only used on local host for signaling dispatcher, never seen on the network
ICM Admin
detected automatically
65000 or next free lower port
65000 or less
Internal communication. Automatically uses the first free port from 65000 downwards. Port accepts connections only from localhost.
Web AS J2EE Engine
J2EE Dispatcher
HTTP
5NN00
50000
50000-59900
NN = Instance number (00…99)
HTTP over SSL
5NN01
50001
50001-59901

IIOP initial context
5NN02
50002
50002-59902

IIOP over SSL
5NN03
50003
50003-59903

P4
5NN04
50004
50004-59904

P4 over HTTP tunneling
5NN05
50005
50005-59905

P4 over SSL
5NN06
50006
50006-59906

IIOP
5NN07
50007
50007-59907

Telnet
5NN08
50008
50008-59908

JMS
5NN10
50010
50010-59910

J2EE Server ( internal ports)
Server Join Port
5NN20 + x*5
50020 (server 0)
50020-59995
X = 0, 1, 2, 3, ...15 (number of server)
Server Debug Port
5NN21 + x*5
50021 (server 0)
50021-59996
X = 0, 1, 2, 3, ...15 (number of server)
Central Services for Java (Separate instance, default instance number 01)
Enqueue Server
Enque Server Port
32NN
3201
3200-3299
NN = Instance number (00…99)
Enq. Replication
33NN
3301
3300-3399

Message Server
MessageServer Port
36NN
3601
3600-3699
NN = Instance number (00…99) rdisp/msserv
HTTP
81NN
8101
8100-8199
ms/http_port
HTTPS
444NN
Not active
44400-44499
ms/https_port
Web AS Administrative Services
Start Service
HTTP Start Service
5NN13
sapctrlNN
50013
50013-59913
NN = Instance number (00…99)
HTTPS Start Service
5NN14
sapctrlsNN
50014
50014-59914

Leer más...