SAP JPA setMaxResults issue
Hello,
I'm operating on a large table with a few million of records using SAP JPA running on AS Java 7.3.1 and Oracle 11g. While analyzing a performance issue, I came across a DB trace that led me to think that the setMaxResults() method on Query objects may not be working the way I think they were.
I execute a SELECT and apply setMaxResults(100) to the DB along with a WHERE clause, but Oracle SQL trace shows only the SELECT and WHERE clauses. I expect setMaxResult to be applied as a ROWNUM parameter at the end of the WHERE clause, so if I execute a statement like:
Query q = "SELECT ent FROM ENTLargeTable ent WHERE ent.type = 1";
List list = em.createQuery(queryString).setMaxResults(100).getResultList();
DB trace shows:
SELECT id, name, type FROM LargeTable WHERE type = 1 ORDER BY id
where I expect it to be something like:
SELECT id, name, type FROM LargeTable WHERE type = 1 and ROWNUM < 100 ORDER BY id
My list is 100 records long indeed, but I run into Oracle TMP and performance related issues probably because this is trying to scan the whole table first.
Appreciate any ideas on this.
Kind Regards,
Gökhan
Hi Gökhan,
As you say the "list is 100 records long indeed", it behaves correctly as defined in the JPA spec - though I agree there is most likely potential for optimization. The best approach would be to open an SAP support ticket.
Cheers,
--Vlado
Similar Messages
-
Dear experts,
I have a WD application with EJB model. I have faced strange JPA exception (I am using SAP JPA implementation).
This is 2 Entities with relationship
@Entity
@Table( schema = "dbo", name = "class")
public class ClassEntity {
private Long id;
@Id
@Column(name="id")
@GeneratedValue(strategy= GenerationType.IDENTITY)
public Long getId() {
return id;
public void setId(Long id) {
this.id = id;
private Collection<ClassAttributeEntity> classAttributesById;
@OneToMany(mappedBy = "classByClassId", fetch=FetchType.LAZY)
public Collection<ClassAttributeEntity> getClassAttributesById() {
return classAttributesById;
public void setClassAttributesById(Collection<ClassAttributeEntity> classAttributesById) {
this.classAttributesById = classAttributesById;
@Entity
@Table( schema = "dbo", name = "class_attribute")
public class ClassAttributeEntity{
private Long id;
@Id
@Column(name="id")
@GeneratedValue(strategy= GenerationType.IDENTITY)
public Long getId() {
return id;
public void setId(Long id) {
this.id = id;
private ClassEntity classByClassId;
@ManyToOne
@JoinColumn(name = "class_id", referencedColumnName = "id")
public ClassEntity getClassByClassId() {
return classByClassId;
public void setClassByClassId(ClassEntity classByClassId) {
this.classByClassId = classByClassId;
I want to execute JPQL query
"SELECT c FROM ClassEntity c"
; But I get this exception:
javax.persistence.PersistenceException: The relationship >>classAttributesById<< of entity {test.ClassEntity(id=1686)}cannot be loaded because the entity is detached
I can overcome it using EAGER loading -
@OneToMany(mappedBy = "classByClassId", fetch=FetchType.EAGER)
, but I really dont need ClassAttributes in this situation! I have many thousands of classes and eager loading provides extremly poor perfomance. What can I do with this problem?
Thanks in advance for any advice.Hi Andrey,
I assume you are getting the exception if you atempt to access "classAttributesById" ouside the transaction, in which you executed the query, i.e. after the persistence context, in which the query has been executed is closed.
You have got to make sure that all entities you need to access are read as long as the persistence context executing the query is still open.
How to address this depends a bit on whether you need to access all related entites or only some.
If you need to access the relationship "classAttributesById" for only some instances of "ClassEntity", you could for example call size() on "classAttributesById" for these selected instances of "ClassEntity" (within the same transaction/persistence context".
If you need to access all related entities, theoretically, fetchType = EAGER would be the right choice. However, as you have observed, SAP JPA can't handle this efficiently at the time beeing. Therefore,
I'd rather suggest that you firstly load all related attributes with a query
"SELECT ca FROM ClassAttributeEntity ca"
and secondly load the "ClassEntity"s
"SELECT c FROM ClassEntity c"
this should execute efficiently.
Sorry for the inconvenience.
-Adrian -
SAP-JPA: "Orphan Removal" supported?
Hi,
in JPA 2.0 you can mark associations (@OneToOne, @OneToMany) with an "orphanRemoval" flag. If orphanRemoval is set to true on an association, a child that is removed from the association is also deleted from the database during the flush operation.
Today, Hibernate and EclipseLink support the concept (in EclipseLink it is called @PrivateOwned, in Hibernate "delete-orphan").
Is this concept currently supported in SAP-JPA?
Kind regrads
JanHi Jan,
unfortunately, SAP JPA does not support orphan removal.
-Adrian -
SAP JPA - case-insensitive search
Hi there, is it possible to have a case-insensitive search with SAP JPA? The keywords UPPER, LOWER aren't available in the query (OpenSQL limitation I guess).
The only way I see is to create a duplicates columns for the search relative atributes and make the data upper or lower case before save. May be there is another options? More suitable and elegant?Hi,
you may bypass openSQL by native queries.
Make sure that you use the hint described in
http://help.sap.com/saphelp_nwce72/helpdata/en/4a/0cf02870c540caab611d56220ec0cb/frameset.htm
together with createNativeQuery.
But anyway, the approach with duplicates columns enables you to create indexes on these UPPER columns. It is not too bad.
Regards,
Rolf -
Hi All,
In Hibernate we can see the query by setting in persistence xml file
<property name="show_sql">true</property>
Do we have anything like this in SAP JPA so that i can see the actual query ?
If not is there any place in Server where can I check the fired query?
Many ThanksHi Arvind,
You can monitor JPA Cache, for more details please have look of the below help
Using JPA Monitors - Monitoring - SAP Library
Thanks,
Hamendra -
Hello, experts!
I have an WD application that uses EJB model. All works fine, but I want to change SAP JPA implementation to Hibernate JPA implementation.
This is my persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="test" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>msDS</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
</properties>
</persistence-unit>
</persistence>
I have got this exception after substituting JPA implementations : org.hibernate.HibernateException: The chosen transaction strategy requires access to the JTA TransactionManager
I have read on different forums that this exception means that container cant get a transaction. But I want to use "transaction-type="JTA", not "manual" transactions.
Thanks for any reply.Are you sure that your DB (dialect) is SQL Server?
If yes, then try adding the following property to your persistence.xml
<property name="hibernate.transaction.manager_lookup_class"
value="test.persistence.SAPCETransactionManagerLookup"/>
where SAPCETransactionManagerLookup is
package test.persistence;
import org.hibernate.transaction.JNDITransactionManagerLookup;
public class SAPCETransactionManagerLookup extends
JNDITransactionManagerLookup {
@Override
protected String getName() {
return "TransactionManager";
public String getUserTransactionName() {
return "UserTransaction";
You may also try adding another property along with the above one, if the aforementioned property doesn't work.
<property name="hibernate.transaction.factory_class"
value="org.hibernate.transaction.JTATransactionFactory"/> -
Hello, experts!
I have a simple entity
@Entity
@Table( schema = "dbo", name = "class")
public class ClassEntity {
private Long id;
@Id
@Column(name="id")
@GeneratedValue(strategy= GenerationType.IDENTITY)
public Long getId() {
return id;
public void setId(Long id) {
this.id = id;
I have about 10.000 records in this table. The simplest query "SELECT c FROM ClassEntity c WHERE c.id=:id" tooks 3-4 seconds! I have found (using mssql profiler) that SAP JPA implementation selects ALL records and only then returns the one I need!
Moreover, query "SELECT count(c) FROM ClassEntity c" tooks 3-4 seconds too, and its behaviour is the same! Have anyone an idea, whats going on? How can I select just 1 record (ClassEntity) from the table?
Thanks for any advice.Hi Andrey,
the behavior you are describing would be absolutely unexpected.
Could you please double check using the SQL Trace (http://<host>:<port>/OpenSQLMonitors) that the generated SQL is a you are describing it.
-Adrian -
SAP EHS Safety Issue mobile app on SMP 3.0
Hi,
I'm on the process of installing and configuring the SAP EHS Safety Issue mobile app on SMP 3.0. However, the current Administrator guide hasn't been updated since SMP 2.3.
Has anyone attempted to install this app on SMP 3.0? Any idea how this should be configured? Should it use the SAP Management Console or the Gateway Management Cockpit?
Also, does anyone has previous experience working with this app? How can I test the OData services without going through SMP?
Kind regards,
OmarFor anyone interested, here's some details:
The HTTP method implemented by the service is: http://<SAPserver>:8000/sap/opu/odata/EHSMM01/LWM_SAFETY_OBSERVAT
When you configure the app, you need to set this up as your backend endpoint. You can also set this up as your HTTP authentication for your security profile.
You don't need to use the Gateway Management Cockpit. Just create an application with app ID:
com.sap.bsuite.erp.ehsm.safetyobserver
and use the above information for the backend and security profiles.
That's all! -
SAP-JPA changes version of unchanged entities
Hi all:
We are having a problem with an application that we developed using Sap NetWeaver 7.1 . We are having optimisticlock exception in some of the transactions that we have in the application, checking this situation we found that SAP-JPA is updating the version field for entities that we haven't change. Why is this happening?Hi Adrian:
I'm sending the following:
1. The ejb's method that we are using to execute the query.
2. The query.
3. The entities that are part of the query, if you need I can send you the related entities.
This is the method that we are calling from webDynpro.
@TransactionAttribute(value=TransactionAttributeType.NOT_SUPPORTED)
public List<Object> buscarOrdenesFabricacion(String codigoLote){
ArrayList<Object> listaParametros = new ArrayList<Object>();
listaParametros.add(codigoLote);
Parametro parametro = new Parametro();
parametro.setParametros(listaParametros);
//parametro = null;
List<Object> ordenFabricacion = (List<Object>)servicioCrud.findNamedQuery("OrdenFab.buscarPor_Lote_tipoSemi", parametro);
if(ordenFabricacion.size() == 0){
return null;
return ordenFabricacion;
This method is from an EJB that we use to handle all the DB interaction (DAO)
@TransactionAttribute(value=TransactionAttributeType.NOT_SUPPORTED)
public List findNamedQuery(String namedQuery, Parametro parametro) {
super.setEntityManager(this.entityManager);
return super.findNamedQuery(namedQuery, parametro);
In this EJB we are intantiating the entityManager in this way
@PersistenceContext(unitName="devCrystal~0~entidades~crystal.com.co")
protected EntityManager entityManager;
@Resource(name="ORDENES")
protected javax.sql.DataSource dataSource;
We are handling the transaction by BEAN.
This is the parent class for the above EJB.
@TransactionAttribute(value=TransactionAttributeType.NOT_SUPPORTED)
public List findNamedQuery(String namedQuery, Parametro parametro) {
List retorno = null;
Query query = this.entityManager.createNamedQuery(namedQuery).setFlushMode(FlushModeType.COMMIT);
setParametros(query, parametro);
retorno = query.getResultList();
return retorno;
protected Query setParametros(Query query, Parametro parametro) {
if (parametro != null) {
List<Object> listaParametros = parametro.getParametros();
if (parametro != null && listaParametros != null) {
for (int i = 1; i <= listaParametros.size(); i++) {
query.setParameter(i, listaParametros.get(i - 1));
return query;
QUERY
<named-native-query name="OrdenFab.buscarPor_Lote_tipoSemi" result-class="co.com.crystal.entidades.produccion.OrdenFabricacion">
<query><![CDATA[ SELECT of.*
FROM tb_ordenfabricacion of
WHERE of.co_ordenfabricacion IN
(SELECT DISTINCT tb_operacionlote.co_ordenfabricacion
FROM tb_operacionlote
WHERE tb_operacionlote.fh_terminacion IS NULL AND tb_operacionlote.co_lote = ?)]]>
</query>
</named-native-query >
Entities
package co.com.crystal.entidades.produccion;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import javax.persistence.Version;
@Entity
@Table(name="TB_ORDENFABRICACION")
public class OrdenFabricacion implements Serializable {
@Id
@Column(name="CO_ORDENFABRICACION")
private String coOrdenfabricacion;
@Column(name="FH_ACTUALIZACION")
@Temporal(TemporalType.TIMESTAMP)
private Timestamp fhActualizacion;
@Column(name="CA_PROGRAMADA")
private Double caProgramada;
@Version
private int version;
@Column(name="SW_SUMINISTROILIMITADO", nullable = true)
private String swSuministroilimitado;
@Column(name="CO_USUARIO")
private String coUsuario;
@Column(name="FH_CREACION")
@Temporal(TemporalType.TIMESTAMP)
private Timestamp fhCreacion;
@Column(name="VL_PORCENTAJEEXCESO", nullable = true)
private Double vlPorcentajeexceso;
@ManyToOne
@JoinColumn(name="CO_TIPOSEMIELABORADO", nullable = true)
private TipoSemiElaborado coTiposemielaborado;
@ManyToOne
@JoinColumn(name="CO_CENTRO")
private Centro coCentro;
@ManyToOne
@JoinColumn(name="CO_CATEGORIA", nullable = true)
private Categoria coCategoria;
@ManyToOne
@JoinColumn(name="CO_CLASEORDEN")
private ClaseOrden coClaseorden;
@ManyToOne
@JoinColumn(name="CO_MATERIAL")
private Material coMaterial;
@ManyToOne
@JoinColumn(name="CO_TALLA")
private Talla coTalla;
@ManyToOne
@JoinColumn(name="CO_COLOR")
private Color coColor;
/* //@OneToMany(mappedBy="coOrdenfabricacion", fetch=FetchType.LAZY)
@Transient
private List<OperacionLote> tbOperacionLoteCollection;
@OneToMany(mappedBy="coOrdenfabricacion", fetch=FetchType.LAZY)
private List<OperacionOrden> tbOperacionordenCollection;
@OneToMany(mappedBy="coOrdenfabricacion")
private Set<OrdenPrevFab> tbOrdenprevfabCollection;
@OneToMany(mappedBy="coOrdenfabricacion")
private Set<OrdenPrevFab> tbOrdenprevfabCollection;
private static final long serialVersionUID = 1L;
public OrdenFabricacion() {
super();
public String getCoOrdenfabricacion() {
return this.coOrdenfabricacion;
public void setCoOrdenfabricacion(String coOrdenfabricacion) {
this.coOrdenfabricacion = coOrdenfabricacion;
public Timestamp getFhActualizacion() {
return this.fhActualizacion;
public void setFhActualizacion(Timestamp fhActualizacion) {
this.fhActualizacion = fhActualizacion;
public Double getCaProgramada() {
return this.caProgramada;
public void setCaProgramada(Double caProgramada) {
this.caProgramada = caProgramada;
public Centro getCoCentro() {
return this.coCentro;
public void setCoCentro(Centro coCentro) {
this.coCentro = coCentro;
public int getVersion() {
return this.version;
public void setVersion(int version) {
this.version = version;
public String getSwSuministroilimitado() {
return this.swSuministroilimitado;
public void setSwSuministroilimitado(String swSuministroilimitado) {
this.swSuministroilimitado = swSuministroilimitado;
public String getCoUsuario() {
return this.coUsuario;
public void setCoUsuario(String coUsuario) {
this.coUsuario = coUsuario;
public TipoSemiElaborado getCoTiposemielaborado() {
return this.coTiposemielaborado;
public void setCoTiposemielaborado(TipoSemiElaborado coTiposemielaborado) {
this.coTiposemielaborado = coTiposemielaborado;
public Timestamp getFhCreacion() {
return this.fhCreacion;
public void setFhCreacion(Timestamp fhCreacion) {
this.fhCreacion = fhCreacion;
public Double getVlPorcentajeexceso() {
return this.vlPorcentajeexceso;
public void setVlPorcentajeexceso(Double vlPorcentajeexceso) {
this.vlPorcentajeexceso = vlPorcentajeexceso;
public Categoria getCoCategoria() {
return this.coCategoria;
public void setCoCategoria(Categoria coCategoria) {
this.coCategoria = coCategoria;
public ClaseOrden getCoClaseorden() {
return this.coClaseorden;
public void setCoClaseorden(ClaseOrden coClaseorden) {
this.coClaseorden = coClaseorden;
public Material getCoMaterial() {
return this.coMaterial;
public void setCoMaterial(Material coMaterial) {
this.coMaterial = coMaterial;
public Talla getCoTalla() {
return this.coTalla;
public void setCoTalla(Talla coTalla) {
this.coTalla = coTalla;
public Color getCoColor() {
return this.coColor;
public void setCoColor(Color coColor) {
this.coColor = coColor;
public List<OperacionOrden> getTbOperacionordenCollection() {
return this.tbOperacionordenCollection;
public void setTbOperacionordenCollection(List<OperacionOrden> tbOperacionordenCollection) {
this.tbOperacionordenCollection = tbOperacionordenCollection;
public Set<Lote> getTbLoteCollection() {
return tbLoteCollection;
public void setTbLoteCollection(Set<Lote> tbLoteCollection) {
this.tbLoteCollection = tbLoteCollection;
public Set<OrdenPrevFab> getTbOrdenprevfabCollection() {
return this.tbOrdenprevfabCollection;
public void setTbOrdenprevfabCollection(Set<OrdenPrevFab> tbOrdenprevfabCollection) {
this.tbOrdenprevfabCollection = tbOrdenprevfabCollection;
public Set<TbOrdenprevfab> getTbOrdenprevfabCollection() {
return this.tbOrdenprevfabCollection;
public void setTbOrdenprevfabCollection(Set<TbOrdenprevfab> tbOrdenprevfabCollection) {
this.tbOrdenprevfabCollection = tbOrdenprevfabCollection;
public List<OperacionLote> getTbLoteCollection() {
return tbOperacionLoteCollection;
public void setTbLoteCollection(List<OperacionLote> tbLoteCollection) {
this.tbOperacionLoteCollection = tbLoteCollection;
package co.com.crystal.entidades.produccion;
import java.io.Serializable;
import java.sql.Timestamp;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Version;
@Entity
@Table(name="TB_OPERACIONLOTE")
public class OperacionLote implements Serializable {
@EmbeddedId
private OperacionLote.PK pk;
@Column(name="CA_PRIMERAS")
private Integer caPrimeras;
@Column(name="FH_TERMINACION")
@Temporal(TemporalType.TIMESTAMP)
private Timestamp fhTerminacion;
@Column(name="FH_INICIO")
@Temporal(TemporalType.TIMESTAMP)
private Timestamp fhInicio;
@Column(name="FH_ACTUALIZACION")
@Temporal(TemporalType.TIMESTAMP)
private Timestamp fhActualizacion;
@Column(name="FH_CREACION")
@Temporal(TemporalType.TIMESTAMP)
private Timestamp fhCreacion;
@Version
private int version;
@Column(name="CO_USUARIO")
private String coUsuario;
@Column(name="CA_TEORICA")
private Double caTeorica;
@Column(name="CA_TEORICAPLC")
private Double caTeoricaplc;
@ManyToOne
@JoinColumn(name="CS_MAQUINA")
private Maquina csMaquina;
@Column(name="CO_MAQUINA")
private String coMaquina;
@ManyToOne
@JoinColumns({
@JoinColumn(name="CO_ORDENFABRICACION", referencedColumnName="CO_ORDENFABRICACION", insertable=false, updatable=false),
@JoinColumn(name="CO_LOTE", referencedColumnName="CO_LOTE", insertable=false, updatable=false)
private Lote tbLote;
@ManyToOne
@JoinColumns({
@JoinColumn(name="CO_ORDENFABRICACION", referencedColumnName="CO_ORDENFABRICACION", insertable=false, updatable=false),
@JoinColumn(name="CS_OPERACION", referencedColumnName="CS_OPERACION", insertable=false, updatable=false)
private OperacionOrden tbOperacionOrden;
private static final long serialVersionUID = 1L;
public OperacionLote() {
super();
public OperacionLote.PK getPk() {
return this.pk;
public void setPk(OperacionLote.PK pk) {
this.pk = pk;
public Integer getCaPrimeras() {
return this.caPrimeras;
public void setCaPrimeras(Integer caPrimeras) {
this.caPrimeras = caPrimeras;
public Timestamp getFhTerminacion() {
return this.fhTerminacion;
public void setFhTerminacion(Timestamp fhTerminacion) {
this.fhTerminacion = fhTerminacion;
public Timestamp getFhInicio() {
return this.fhInicio;
public void setFhInicio(Timestamp fhInicio) {
this.fhInicio = fhInicio;
public Timestamp getFhActualizacion() {
return this.fhActualizacion;
public void setFhActualizacion(Timestamp fhActualizacion) {
this.fhActualizacion = fhActualizacion;
public Timestamp getFhCreacion() {
return this.fhCreacion;
public void setFhCreacion(Timestamp fhCreacion) {
this.fhCreacion = fhCreacion;
public int getVersion() {
return this.version;
public void setVersion(int version) {
this.version = version;
public String getCoUsuario() {
return this.coUsuario;
public void setCoUsuario(String coUsuario) {
this.coUsuario = coUsuario;
public Double getCaTeorica() {
return this.caTeorica;
public void setCaTeorica(Double caTeorica) {
this.caTeorica = caTeorica;
public Double getCaTeoricaplc() {
return this.caTeoricaplc;
public void setCaTeoricaplc(Double caTeoricaplc) {
this.caTeoricaplc = caTeoricaplc;
@Embeddable
public static class PK implements Serializable {
@Column(name="CO_ORDENFABRICACION")
private String coOrdenfabricacion;
@Column(name="CO_LOTE")
private String coLote;
@Column(name="CS_OPERACION")
private String csOperacion;
private static final long serialVersionUID = 1L;
public PK() {
super();
public String getCoLote() {
return this.coLote;
public void setCoLote(String coLote) {
this.coLote = coLote;
public String getCsOperacion() {
return this.csOperacion;
public void setCsOperacion(String csOperacion) {
this.csOperacion = csOperacion;
public String getCoOrdenfabricacion() {
return this.coOrdenfabricacion;
public void setCoOrdenfabricacion(String coOrdenfabricacion) {
this.coOrdenfabricacion = coOrdenfabricacion;
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
if ( ! (o instanceof PK)) {
return false;
PK other = (PK) o;
return this.coLote.equals(other.coLote)
&& this.csOperacion.equals(other.csOperacion)
&& this.coOrdenfabricacion.equals(other.coOrdenfabricacion);
@Override
public int hashCode() {
return this.coLote.hashCode()
^ this.csOperacion.hashCode()
^ this.coOrdenfabricacion.hashCode();
public Lote getTbLote() {
return tbLote;
public void setTbLote(Lote tbLote) {
this.tbLote = tbLote;
public OperacionOrden getTbOperacionOrden() {
return tbOperacionOrden;
public void setTbOperacionOrden(OperacionOrden tbOperacionOrden) {
this.tbOperacionOrden = tbOperacionOrden;
public Maquina getCsMaquina() {
return csMaquina;
public void setCsMaquina(Maquina csMaquina) {
this.csMaquina = csMaquina;
public String getCoMaquina() {
return coMaquina;
public void setCoMaquina(String coMaquina) {
this.coMaquina = coMaquina;
If you need i can send you also the database traces where you can see the selects and updates over the tables.
I hope that you can help us with this, we are in a huge problem because of this behavior.
Best regards,
Jose Arango. -
SAP Gui 730 issue with crobu theme
Hello Frineds, Our developer team is facing some strange issue. They are able using corbu theme in SAP GUI 720. but after the new SAP GUI 730 implementaion, they are not able to use this theme. Checked all the notes etc, but its not clear on themes part. Any one faced this kind of issue or any suggestions. Thanks in advance. Regards Munish
Hi Munish,
Can you raise this in ABAP community ?
Also, to help you further can you drill down to some more relevant information ?
As far as one can understand, it's a rendering problem with SAP GUI 730.
This can also be compatibility issue with your kernel and application.
I would suggested you to check all above options.
Regards,
Divyanshu -
SAP GUI Compatibility issue with Windows 2008R2 64 Bit
Hi Gurus
Is anyone experienced connectivity issue with SAP GUI (32bit) on Windows 2008R2 64bit? Except base version of 7.3 every Service Pack failing
to connect, Strange thing was it was working with SP5 in WINDOWS 7 64bit.
Your inputs greatly appreciated.
-giriHi Giri
Yes, You can do the normal installation on windows 2008 / 2008 R2 systems. we are using in our environment. is this any error message while installation or SAPGUI execution time?
Refer the SAP Note 66971 - Supported SAP GUI platforms
BR
SS -
Hi , all
Now , i am using SAP GUI710 , Patch level 3, i have an issue , if i leave the sec untouched for about 5 minutes , GUI will log off itself , and give me this information:
CD1: connection to partner " ..........: sapdp00" broken
WSAECONNRESET: connection reset by peer
though i can logon again , but this really boring me , every 5 minute , if no activity , then auto logoff and i need to logon again.
what is the problem , how to fix this ? thanks.Hello,
If this happens for all the users , pl check the SAP instance parameter value rdisp/gui_auto_logout.
If it is 0 there wont be any auto log out.
set the value in seconds means if you set it at 300 it will log out automaticaly after 5 secs.
Pl try this . Dont forget to restart the server after making the changes.
Award if resolved.
Regards -
Hello Experts,
I am having some issue in the SAP GUI editor.
Whenver I open the SCREEN painter. It opens in line editor with error "EU_SCRP_WN32 : timeout during allocate / CPIC-CALL: 'ThSAPCMRCV'"
My graphic layout editor option is checked.
The Component version is SAP EHP 1 for SAP Solution Manager 7.0
GUI version is 640
My other box whose component version ECC 6.0. There editor is opening in the Graphical format.
kindly help.
Regards,
HemaHello,
This is version compatibility issue. You can talk to BASIS administrator and get the lastest SAP GUI installed.
Thanks,
Augustin. -
SAP ERP Quality Issue: Notification Creation Problem
Hello,
I'm testing the SAP mobile app ERP Quality Issue.
I've done the needed customizing in backend.
If I try to create a notification from the mobile app I've got this message:
Your Quality Issue cannot be created!
In iPad log I can see this error:
QualityIssue
31/05/12 10:43:45
Exception during parsing! - Collection Value is not a valid DateTime /Volumes/sapmnt/dewdfms0003/fa/src/MobileSuite/LWM_qualityissue_iOS/onDevice/LWM_qualityissue_iOS/1.0_REL/Mobile Quality Issue/Classes/../Connectivity.m:510
I don't understand why the app talks about DateTime if there are no datetime fields in the screen!
Does anyone have the same problem?
Thanks
PieroHello, Piero!
Have you solved this problem?
We have the same problem right now
and we are trying to find solution.
Could you please share your experience, have you succeed?
Thank you!
Best regards,
Konstantin Tomilov -
SAP MII function issue in SAP MII 14.0
Hi,
Currently I was working on some content up gradation work in SAP MII 14.0 , but while working, I have got a strange think regarding SAP MII Functions. We have developed the same code in SAP MII 12.2 and faced the issue while migrating to 14.0. The issue is as follows,
The function we have used in 12.2 is getvalue(name) as in the below screenshot,
but while we have migrated to 14.0, then we saw the function has updated into getvalue(map, key) in 14.0
I have no idea why parameter of the existing function got updated, but the problem is if someone want to migrate the existing code from 12.2 to 14.0 using such of function then he/she can get a "Conversion Exception" and at that time it will become bit hectic to identify the issue and change the logic to handle this in all the places.
Regards,
SumanHello Suman,
I guess it is a bug in MII 14.0. The help doc has the getValue(name) still. However, the newer function is not present in the same. I guess it was not documented. I guess, the getValue(map, name) is a newer function which somehow replaced the older one.
I would suggest you to raise a support ticket. According to me, the getValue(name) and getValue(map, name), both should exist.
Regards,
Tufale Ashai.
Maybe you are looking for
-
Time stamp changes when exporting...
Hi, I sometimes want to export an Aperture album to iPhoto so I can then send it to iDVD as a slide-show. I sometimes use Photoshopped jpeg diagrams (not photos) mixed in with my raw originals in the Aperture album as well. I've altered their time st
-
FM RH_INSERT_INFTY lock by CL_HR_ALEOX_BADI in production system
Hi Gurus, I am using FM RH_INSERT_INFTY in a Z.. Report in order to massive charge the organizational structure. But it's taking so long, and when I see in SM50 is performing in report "CL_HR_ALEOX_BADI==============CP" in production system. Does any
-
Security implications of publishing CRM Surveys to Internet.
Hi Experts, I am about to implement the CRM V5.0 Survey tool using CRM_SURVEY_SUITE and need to be able to publish these surveys to the web. I am able to download the survey the my local PC as HTML. I then need to load it on to a web server and cre
-
Drawing diagrams similar to UML
Dear All, Is there any open source Java package that can draw diagrams similar to UML digrams in a painless way. Thanks for your kind attention!! Regards, Chen Wing Yen
-
Export *part* of a multitrack project?
I don't seem to be able to find what I'm looking for - I'd like to be able to export a section of a MT project , between markers perhaps, to a stereo file. There are work-arounds, but all of them are inconvenient. Any clues?