• İlk kurulumda veritabanı olarak, kullanılacak 'Temelset' veritabanı seçilmelidir. (master ya da Netsis seçilmemelidir.) B2B tabloları bu veritabanı üzerinde yaratılır. (PRT ile başlar)

  • Kurulum hatalarında, hata aldığı anda, hatayı kapatmadan, C:\Users\kullanici.adi\AppData\Local\ ya da Local\Temp adlı klasörün altında sfx{’le başlayan klasör içinde yer alan "installation.log" dosyasının en sonunda hangi hata detayına ulaşılabilir. (Hangi script sebebiyle hata alındığı)
    Gerekirse bu log dosyasını direkt .rar layarak [email protected] adresine 'kurulum hatası' konusu ile paylaşabilirsiniz.


Karşılaşabileceğiniz bazı hata çözümleri ve dikkat edilmesi gereken noktalar:


  • /--v220 oncesi bir sürümden güncelleme yapıyorsanız ve B2B "Onay Yapısı" kullanılıyorsa *** :
    - Degişen sipariş onay altyapısı sonrası mevcut dataların düzenlenmesi için v220 altındaki B2B_ONAY_DUZENLEME scriptini çalıstırınız!


  • /-- v300 öncesi bir sürümden bu sürüme güncelleme yapılıyor ise;
    1) Hata alındığında (installation.log sonunda AJM ile ilgili hata var ise) v300 klasörü altındaki 03_AJM_UPDATE scripti içindeki kısımlar tek tek çalıştırıldıktan sonra kurulum tekrar denenebilir. 
    (Zaten varolanlar için hata alınabilir, hata alınsa da sonuna kadar devam edebilirsiniz)

    2) Şube bazlı depo kodu desteği geldiği için güncelleme sonrası işlem yapmadan önce " ERP Ayarları > Şubeler " sekmesi altından aktif şube için varsayılan depo kodu ataması gerçekleştiriniz.


  • /-- Herhangi bir durumda (sıfır kurulum ya da temelsette güncelleme sonrası) Stok ve müşterilerin gelmediği gözleniyorsa ve temelsette db güncellemesi ya da yeni versiyon temelsete geçiş gerçekleşmişse aşağıdaki scripti temelset veritabanında çalıştırınız:

ALTER FUNCTION [dbo].[NETPROCESSID]()
RETURNS VARCHAR(75)
WITH SCHEMABINDING
AS
BEGIN
DECLARE @APPNAME VARCHAR(50);
DECLARE @RESULT VARCHAR(75)

SET @APPNAME = APP_NAME();


IF SUBSTRING(@APPNAME,1,10) = 'NETSISWEB'
BEGIN
DECLARE @LENGTH TINYINT
DECLARE @CTX VARBINARY(128)

SET @CTX = CONTEXT_INFO()
SET @LENGTH = CONVERT(TINYINT, SUBSTRING(@CTX, 1, 1))
SET @RESULT = CONVERT(VARCHAR(127), SUBSTRING(@CTX, 2, @LENGTH))
END
ELSE IF SUBSTRING(@APPNAME,1,4) = 'RC20'
BEGIN
SET @RESULT=('REDCODE20' + '_' + @APPNAME)
END
ELSE IF @APPNAME = '444082'
BEGIN
SET @RESULT=(HOST_NAME()+'_'+LTRIM(CAST(CAST(GETDATE() AS DECIMAL) AS VARCHAR(15))) + '_' + @APPNAME)
END
ELSE
BEGIN
SET @RESULT=(HOST_NAME() + '_' + HOST_ID() + '_' + @APPNAME)
END

RETURN @RESULT
END



  • CREATE PROCEDURE NSP_FRNETSESGUNCELLE(
    @PNETUSERID TDBSMALLINT,
    @PNETUSERNAME VARCHAR(30),
    @PISLETME_KODU  TDBSMALLINT,
    @PSUBE_KODU     TDBSMALLINT,
    @PMERKEZMI      CHAR,
    @PLOGTUTULACAK  CHAR,
    @PILERIGUVENLIKSISTEMI CHAR,
    @PNETUSERGRPID  TDBSMALLINT,
    @PWORKPLACEVARMI CHAR,
             @PCARIKULTIPI TDBBYTE,
             @PMUHKULTIPI TDBBYTE,
             @PESNEKYAPVARMI CHAR,
             @PNETKEY VARCHAR(150))
    AS BEGIN
     DECLARE @PID VARCHAR(75)
     SELECT @PID=DBO.NETPROCESSID()
     IF (SELECT COUNT(*) FROM NETSIS..NETSESSION WHERE V$PROCESSID = @PID) > 0
     BEGIN
       UPDATE NETSIS..NETSESSION
         SET 
     V$ISLETME_KODU = @PISLETME_KODU  ,
     V$SUBE_KODU = @PSUBE_KODU     ,
         V$NETUSERID = @PNETUSERID,
         V$NETUSERNAME = @PNETUSERNAME,
         V$MERKEZMI = @PMERKEZMI,
         V$LOGTUTULACAK = @PLOGTUTULACAK,
         V$ILERIGUVENLIKSISTEMI = @PILERIGUVENLIKSISTEMI,
         V$NETUSERGRPID = @PNETUSERGRPID,
         V$WORKPLACEVARMI = @PWORKPLACEVARMI,
         V$CARIKULTIPI = @PCARIKULTIPI,
         V$MUHKULTIPI  = @PMUHKULTIPI,
         V$ESNEKYAPVARMI = @PESNEKYAPVARMI,
         V$NETKEY = @PNETKEY
       WHERE
         V$PROCESSID = @PID
     END 
     ELSE 
     BEGIN
       INSERT INTO NETSIS..NETSESSION(V$PROCESSID,V$ISLETME_KODU,V$SUBE_KODU,
        V$NETUSERID,V$NETUSERNAME,V$MERKEZMI,
        V$LOGTUTULACAK,V$ILERIGUVENLIKSISTEMI,
        V$NETUSERGRPID,V$WORKPLACEVARMI,V$CARIKULTIPI,
        V$MUHKULTIPI,V$ESNEKYAPVARMI,V$NETKEY) VALUES
       (@PID, 
        @PISLETME_KODU, 
        @PSUBE_KODU, 
        @PNETUSERID,
        @PNETUSERNAME, 
        @PMERKEZMI, 
        @PLOGTUTULACAK, 
        @PILERIGUVENLIKSISTEMI, 
        @PNETUSERGRPID, 
        @PWORKPLACEVARMI,
        @PCARIKULTIPI,
        @PMUHKULTIPI,
        @PESNEKYAPVARMI,@PNETKEY)
     END
    END


  • /-- Veritabanında viewlara select çekerken session almak için veritabanında aşağıdaki prosedürü oluşturun:

    Oluşturulan prosedürü  
    EXEC PRTSP_INIT_CONTEXT @STORE_ID, @SSOUSERID şeklinde çalıştırın, ardından istenilen view a select çekilebilir.

    ÖR: EXEC PRTSP_INIT_CONTEXT 0,2

      • /****** Object:  StoredProcedure [dbo].[PRTSP_INIT_CONTEXT]    Script Date: 10.03.2014 16:00:26 ******/

        CREATE PROCEDURE [dbo]. [PRTSP_INIT_CONTEXT]
                @StoreId INT = 0 , 
                @UserId INT = 1
        AS     

        DECLARE @ProcessId VARCHAR( 75)

        SET @ProcessId = DBO.NETPROCESSID ()

        DECLARE @UserName VARCHAR( 30)

        SET @UserName = 'NETSIS'

        IF EXISTS
        (
                SELECT 1
                FROM   NETSIS .dbo. NETSESSION n
                WHERE  n .[V$PROCESSID] = @ProcessId
        )
        BEGIN
                UPDATE NETSIS .dbo. NETSESSION
                SET           [V$NETUSERID] = @UserId ,
                              [V$NETUSERNAME] = @UserName
                WHERE  [V$PROCESSID] = @ProcessId
        END    
        ELSE
        BEGIN
                INSERT INTO NETSIS. dbo.NETSESSION
                (
                       [V$PROCESSID],
                       [V$ISLETME_KODU],
                       [V$SUBE_KODU],
                       [V$NETUSERID],
                       [V$NETUSERNAME],
                       [V$MERKEZMI],
                       [V$LOGTUTULACAK],
                       [V$ILERIGUVENLIKSISTEMI],
                       [V$NETUSERGRPID],
                       [V$WORKPLACEVARMI],
                       [V$CARIKULTIPI],
                       [V$MUHKULTIPI],
                       [V$ESNEKYAPVARMI],
                       [V$NETKEY]
                )
                SELECT TOP 1 DBO. NETPROCESSID(),
                       [V$ISLETME_KODU],
                       [V$SUBE_KODU],
                       @UserId,
                       @UserName,
                       [V$MERKEZMI],
                       [V$LOGTUTULACAK],
                       [V$ILERIGUVENLIKSISTEMI],
                       [V$NETUSERGRPID],
                       [V$WORKPLACEVARMI],
                       [V$CARIKULTIPI],
                       [V$MUHKULTIPI],
                       [V$ESNEKYAPVARMI],
                       [V$NETKEY]
                FROM   NETSIS ..NETSESSION
                WHERE  V$ISLETME_KODU = 1 AND V$SUBE_KODU =0
        END


        IF EXISTS
        (
                SELECT 1
                FROM   PRT_USERCONTEXT u
                WHERE  u .STORE_ID = @StoreId
                              AND u .[USER_ID] = @UserId
        )
        BEGIN
                UPDATE PRT_USERCONTEXT
                SET           DB_PROCESS_ID = @ProcessId ,
                              CURRENT_ACCOUNT_CODE = '12011001'
                WHERE  STORE_ID = @StoreId
                              AND [USER_ID] = @UserId
        END
        ELSE
        BEGIN
                INSERT INTO PRT_USERCONTEXT
                (
                       -- ID -- this column value is auto-generated
                       STORE_ID,
                       [USER_ID],
                       DB_PROCESS_ID,
                       CURRENT_ACCOUNT_CODE
                )
                VALUES
                (
                       @StoreId,
                       @UserId,
                       DBO.NETPROCESSID () ,
                       '12011001'
                )
        END
  • /-- Uygulama içerisinde hata alırsanız, ya da mevcut hata loglarını görmek isterseniz uygulama giriş adresinizden sonra /hata.axd yazarak hata log detaylarını görebilirsiniz.
    ÖR: http://b2bdemo.netsis.com.tr/B2B/hata.axd


  • /-- Form Özelleştirme kullanıyorsanız:
    **  v304 ile birlikte Form özelleştirme ile veritabanından veri çekilen durumlar için yeni kontroller eklenmiştir. Bu yüzden bu özelleştirmelerin tekrar uygun formatta uyarlanması gerekmektedir.
    Detaylı bilgiye aşağıdaki linkten ulaşabilirsiniz:

    Form Ozelleştirme - Sorgu Yonetimi


  • /-- Kurulum sonrası:
    ** v305 ile birlikte güncelleme sonrası Ayarlar > ERP Ayarları > Şubeler > Aktif Şubenin Depo Kodu bilgisi kontrol edilmeli ve gerekiyorsa doldurulmalıdır.


  • /–Aşağıdaki şekilde <customErrors mode="Off"/> ya da <customErrors mode="Remote Only"/> hatası alınırsa;

     ---------------------

    <!-- Web.Config Yapılandırma Dosyası -->

     <configuration>

        <system.web>

            <customErrors mode="Off"/>

        </system.web>

    </configuration>
    ---------------------

    Çözüm için öncelikle;
    Kurulum klasörü altındaki web.config dosyası içinde Ör: C:\inetpub\wwwroot\B2B\web.config

     <customErrors mode=RemoteOnly"/> olan satırı
     <customErrors mode="Off"/> olarak değiştirin. (ilk harfi büyük olacak şekilde Off yazılmalı)

    Ardından server üzerinden tekrar siteye giriş denenmelidir.
    Hata ekran görüntüsünün değişmesi ve hatanın gerçek sebebi görünmesi beklenmektedir. Bu hata detayı incelenebilir ya da destek için [email protected] 'ye gönderebilirsiniz.

    Not: Bir değişiklik gözlenmezse,  <customErrors mode="On"/> olarak değiştirin. (ilk harfi büyük olacak şekilde On yazılmalı) değiştirip tekrar deneyebilirsiniz.

  • /-- HTTP Error 500.19hatası alınıyorsa;

    ÇÖZÜM:

    “%windir%\system32\inetsrv\config\applicationHost.config” dosyasındaki ‘Deny’ değerleri ‘Allow’ yapıldıktan sonra giriş tekrar denenmelidir.



  • Yeni sepet oluştururken takılma - sepete gidince hesaplama yapmama - sepete gidince çok uzun bekleme yapıp sepete girememe sorunları:
    Sebebi; B2B server üzerinde netopenx register edilmemesi - temelset ile b2b netopenxlerinin aynı olmaması - uyumsuz netopenx -  ya da temelsetin B2B server üzerinden lokal değil başka serverı görecek şekilde register edilmiş - çalışıyor olması olabilir.
    Çözüm: B2B Server üzerinde lokalden çalışacak şekilde uygun Netopenx register edilmelidir.

    Kontrol ve uygulama adımları:
    1. B2B server Netsis registry ayarları yine B2B server ı görüyor mu? (Netsis B2B uygulaması kurulu olan serverda kurulu olmalı ve registry ayarları yine burayı görmeli, buradan çalışabilmeli)
    2. Temelsete giriş yapılabiliyor mu? (B2B server üzerinde lokalden temelset açılabilmesi gerekiyor)
    3. Lokalde temelset çalışıyor ise;
    C:\inetpub\wwwroot\B2B\Documents\NetOpenX_files altından temelset versiyonuna göre uygun .rar dosyası içindeki dosyalar açıldıktan sonra alınıp,
    C:\inetpub\wwwroot\B2B\bin altına atılır. (Netsis 9 ise 9015.zip içindeki dosyaları alıp atılır.)
    4. Bin klasörü altına koyulan dosyalardan NetOpenX.dll i alınıp, Netsis > Temelset klasörü altına atılarak oradaki NetOpenX B2B'den alınan ile güncellenir.
    5. IIS üzerinde B2B uygulamasını durdurulur.
    6. Temelset - Servis - Regcontrol işlemi çalıştırılarak, yeni NetOpenX'in register edilmesini sağlanır.
    7. IIS üzerinde B2B uygulamasını açılr.
    8. B2B’ye giriş yaparak Ayarlar > Destek kısmı kontrol edilebilir. Burada “NetOpenX” versiyonunu görülebilmesi gerekmektedir. Bu NetOpenX'in register edildiği anlamına gelir.
    9. Ardından sepete ürün atıp sepete gitme işlemi test edilebilir. Uygun NetOpenX register edilmiş sepete gidilebilmesi ve hesaplama yapılabilmesi beklenir.



  • ***Kritik not: Temelset tarafında 9016'ya geçiş yapan müşteriler için, geçiş sonrası PRTV_ORDER viewu alter edilmelidir.
    TBLSIPAMAS'A yeni eklenen bir kolon bulunduğundan, PRTV_ORDER bozulmaktadır.
    Sipariş kaydederken hata verip, yine de siparişi temelsete kayıt işlemi gerçekleşmektedir.
    Bu hatayı gidermek için PRTV_ORDER alter scripti tekrar çalıştırılmalıdır.

Hata örnek görüntüsü: