Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] Como evitar que me salga este error

Estas en el tema de Como evitar que me salga este error en el foro de .NET en Foros del Web. Hola, Tengo un desarrollo en visual basic .net en realidad es un web services que se conecta a SAP y consume una funcion remota, la ...
  #1 (permalink)  
Antiguo 21/03/2013, 09:38
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 16 años, 5 meses
Puntos: 2
Como evitar que me salga este error

Hola,
Tengo un desarrollo en visual basic .net en realidad es un web services que se conecta a SAP y consume una funcion remota, la primera ves que la ejecuto le mando un valor y me regresa otro desde SAP, pero cuando repito el proceso me sale que ya fue inicializado antes, como puedo comprobar que si ya fue inicializada la conexion ya no la tome en cuenta?
  #2 (permalink)  
Antiguo 21/03/2013, 09:55
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Como evitar que me salga este error

No termino de ver varias cosas en el código. Lo primero es que la variable _ecc se está definiendo fuera de la función donde se usa. Otra cosa es que el try/catch está para envolver el código que puede generar excepciones y claramente te has dejado una ;)
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 21/03/2013, 10:41
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Como evitar que me salga este error

Gracia spor responder Malenko, pero como desktop application y console application si funciona, solo en web services me da este pequeño problema. Tienes alguna idea de como comprobar si ya fue o no inicializado el ECCconfigDestination?
  #4 (permalink)  
Antiguo 21/03/2013, 10:46
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Como evitar que me salga este error

Cita:
Iniciado por th3r0rn Ver Mensaje
Gracia spor responder Malenko, pero como desktop application y console application si funciona, solo en web services me da este pequeño problema. Tienes alguna idea de como comprobar si ya fue o no inicializado el ECCconfigDestination?
En consola y desktop te funciona porque las variables generales (las definidas fuera de las funciones) mantienen el valor entre funciones. En una pagina web (ya sea web normal o webservice) el ciclo de vida de las variables es algo diferente.
__________________
Aviso: No se resuelven dudas por MP!
  #5 (permalink)  
Antiguo 21/03/2013, 10:50
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Como evitar que me salga este error

Que tal th3r0rn

Checa los siguientes enlaces:

http://scn.sap.com/thread/1885178
http://codery.blogspot.mx/2011/06/av...iguration.html

Espero y te sirvan.

Saludos!
__________________
http://ka0stj.wordpress.com/
  #6 (permalink)  
Antiguo 21/03/2013, 12:47
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Como evitar que me salga este error

Muchas gracias Ka0stj ya logre que mi codigo funcione, solo hize una pequeña modificacion. Dejo el ejemplo por si alguien mas tiene el mismo problema:
Código vb:
Ver original
  1. Imports System.Web
  2. Imports System.Web.Services
  3. Imports System.Web.Services.Protocols
  4. Imports SAP.Middleware.Connector
  5.  
  6. ' Para permitir que se llame a este servicio Web desde un script, usando ASP.NET AJAX, quite la marca de comentario de la siguiente línea.
  7. ' <System.Web.Script.Services.ScriptService()> _
  8. <WebService(Namespace:="http://tempuri.org/")> _
  9. <WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
  10. <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
  11. Public Class CallRFC
  12.    Inherits System.Web.Services.WebService
  13.     Private _ecc As RfcDestination
  14.  
  15.     <WebMethod()> _
  16.     Public Function GetCompayName(ByVal companyID As String) As String
  17.  
  18.  
  19.         Try
  20.             _ecc = RfcDestinationManager.TryGetDestination("ECDCLNT140")
  21.  
  22.             If (_ecc Is Nothing) Then
  23.                 RfcDestinationManager.RegisterDestinationConfiguration(New ECCDestinationConfig())
  24.                 _ecc = RfcDestinationManager.GetDestination("ECDCLNT140")
  25.             End If
  26.  
  27.         Catch ex As Exception
  28.             System.Console.WriteLine(ex.Message)
  29.             System.Console.ReadLine()
  30.         End Try
  31.  
  32.  
  33.  
  34.         ' System.Console.WriteLine(String.Format("Successfully connected to System {0} Client {1}.", _ecc.SystemID, _ecc.Client))
  35.        ' System.Console.WriteLine("Enter a company ID:") ' Ingresar el ID: 000880
  36.  
  37.         ' Dim companyID As String = System.Console.ReadLine()
  38.  
  39.         While Not String.IsNullOrEmpty(companyID.Trim)
  40.  
  41.             Dim companyAPI As IRfcFunction = _ecc.Repository.CreateFunction("BAPI_COMPANY_GETDETAIL")
  42.             companyAPI.SetValue("COMPANYID", companyID)
  43.  
  44.             companyAPI.Invoke(_ecc)
  45.  
  46.             Dim companyName As String = companyAPI.GetStructure("COMPANY_DETAIL").GetString("NAME1")
  47.  
  48.  
  49.             If String.IsNullOrEmpty(companyName.Trim) Then
  50.                 companyName = "Not found 1"
  51.             End If
  52.  
  53.             Return companyName
  54.  
  55.             companyID = System.Console.ReadLine()
  56.  
  57.         End While
  58.     End Function
  59. End Class

Etiquetas: basic, conexion, net, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:26.