AIFA AKADEMI · Kurumsal Wiki
4.310 makale
Ana sayfa Kurumsal Wiki › Destek › Processes › PROC-210

ERPBOOSTER Kurulumu

SUPPORT_PROCESSMOD-SISTEMERPGOLD_COREACTIVEHIGHDOCUMENTED
Kanonik kaynak: markdown · bu sayfa üretilmiş görünümdür

Kaynak: KB-v1 08_SupportPlaybooks/Processes/PROC-210.mdSurecler/*.doc (destek süreç dokümanı; parola/IP/terminal maskelenmiş). Gerçeklik: DOCUMENTED — kodla doğrulanmış değil.

ERPBOOSTER Kurulumu

Kimlik: PROC-210 · Ürün: ERPGOLDV2 · Kategori: Kurulum, bağlantı ve sunucu · Katalog: ERPBOOSTER Kurulumu

Kaynak: AifaSoft destek süreç dokümanı (Word). Şifre, kullanıcı adı, terminal no ve IP bilgileri kaynak aşamasında maskelenmiştir; görseller resimli süreç kitabındadır.

  1. Sistem.Activity Tablosunu Oluşturma
/****** Object: Table [Sistem].[Activity] Script Date: 11.10.2023 12:35:07 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [Sistem].[Activity](

[ActivitySubeId] [int] NULL,

[LastDate] [datetime] NULL

) ON [PRIMARY]

GO
  1. Cari.Islemler altındaki AcceptTransaction Triggerına Aşşağıdaki Kodu Ekleyin.
------YAPILAN ISLEMLERDE ACTIVITY DATE YAZILIYOR

MERGE INTO [Sistem].[Activity] AS Target USING (SELECT @subeId AS ActivitySubeId, GETDATE() AS LastDate) AS Source

ON Target.ActivitySubeId = Source.ActivitySubeId

WHEN MATCHED THEN UPDATE SET Target.LastDate = Source.LastDate

WHEN NOT MATCHED BY TARGET THEN INSERT (ActivitySubeId, LastDate)

VALUES (Source.ActivitySubeId, Source.LastDate);

(görsel — süreç kitabında)

  1. Pozisyon.Write Stored Procedurunu Düzenleyin
ALTER Proc [Pozisyon].[Write]

as

if (Select count(*) from Sistem.Activity Where LastDate >(Select IsNull(Max(InsertDate),'2020-01-01') FRom Pozisyon.Pozisyonlar ))=0 RETURN

-----ONCE TEMP DOSYA YOKSA OLUSTUR VARSA ICINI TEMIZLE

IF OBJECT_ID(N'tempdb..#TBLPozisyonlar') IS NULL

BEGIN

CREATE TABLE [#TBLPozisyonlar]([SubeId] [int] NULL, [Birim] [nvarchar](max) NULL, [Bakiye] [decimal](18, 2) NULL, [Kur1] [decimal](18, 5) NULL, [Kur2] [decimal](18, 5) NULL, [Pozisyon] [decimal](18, 2) NULL, [BBirim] [nvarchar](max) NULL) ON [PRIMARY]

END

ELSE

BEGIN

TRUNCATE TABLE #TBLPozisyonlar

END

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

-----GECICI POZISYON TABLOSUNA TUM SUBELERIN POZISYONLARINI HESAPLAYARAK YAZIYORUZ

INSERT INTO #TBLPozisyonlar

Select H.SubeId,H.Birim,H.Bakiye,BK.Alis as Kur1,PK.Alis as Kur2,CONVERT(Decimal(18,2), Fn.Bol( (H.Bakiye * Bk.Alis),Pk.Alis)) as Pozisyon, B.Kodu as BBirim from

(

Select SubeId,Birim,Sum(Bakiye) as Bakiye From

(

Select K.SubeId, BK.Kodu as Birim,B.Bakiye as Bakiye

from

(

Select KasaId,BirimId,Sum(Bakiye) as Bakiye from Cari.BakiyeIslem Where BirimId <>-1 group by KasaId,BirimId

) B

Left Join Sistem.Kasalar K on K.Id =B.KasaId

Left Join Cari.BakiyeKodlari Bk on Bk.Id =B.BirimId

UNION ALL

---NAKIT STOKLARI

Select SubeId, AnaBirim ,Sum(Miktar) From Stok.GetNakitStoklari (0,0,null) group by SubeId, AnaBirim

UNION ALL

---MADEN STOKLARI

Select SubeId,AnaBirim,Sum(Miktar * StabilMilyem) as Has From Stok.GetMadenStoklari (0,0,null,'False') group by SubeId,AnaBirim

UNION ALL

---TAKOZ STOKLARI

SELECT T.SubeId,T.Birim,SUM(T.Has) FROM Stok.GetTakozSirketStoklari (0,0,null)

CROSS APPLY (VALUES(SubeId,'HAS',Case When R='False' Then Miktar * 0 Else AuHas end), (SubeId, 'GUM', AgHas ), (SubeId, 'PLT', PltHas ), (SubeId, 'PLD', PldHas )) t(SubeId,Birim, Has) Where Adet \<>0 and Has\<>0

group by T.SubeId,Birim

) a

Group by SubeId,Birim having Sum(Bakiye)<>0

) H

Left Join Sistem.Subeler S on S.Id =H.SubeId

Left Join Sistem.Birimler B on B.Id =S.BilancoBirimId

Left Join Sistem.GetKurListesi(GETDATE()) PK on PK.Birim=B.Kodu

Left Join Sistem.GetKurListesi(GETDATE()) BK on BK.Birim=H.Birim

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

----POZISYON.POZISYONLAR TABLOSUNU SIFIRLAYARAK GECICI TABLODAKI BILGILERI BURAYA YAZIYORUZ.

TRUNCATE TABLE Pozisyon.Pozisyonlar

INSERT INTO Pozisyon.Pozisyonlar([SubeId],[Birim],[Bakiye],[Kur1],[Kur2],[Pozisyon],[BBirim]) SELECT P.* FROM #TBLPozisyonlar P Left Join Sistem.Birimler B on B.Kodu =P.Birim Order by B.SiraNo

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

DUR BEKLE VE SOLUK AL. SONRA YUKARIDAKİ İŞLEMLERİN SONUCUNU KONTROL ET.

POZISYON.POZISYONLAR TABLOSUNA POZISYONLAR YAZILIYORU MU?

  1. (görsel — süreç kitabında)ERPBoosterConfiguration.Exe Dosyasını Çalıştırın.

  2. Açılan Ekranda Sql Bağlantı Bilgilerini Yazarak Connect Butonuna Basınız.

(görsel — süreç kitabında)

  1. Bağlantı Kurulması durumunda Add Butonu Aktif Olacaktır. Add Butonuna Basınız.

(görsel — süreç kitabında)

(görsel — süreç kitabında)

  1. Pozisyon.GetPozisyon Fonksiyounun Ismini Pozisyon.GetPozisyon_ olarak Değiştirin.

  2. Pozisyon.GetPozisyon Fonksiyonunu Aşşağıdaki Kodla Yeniden oluşturun.

CREATE FUNCTION [Pozisyon].[GetPozisyon] (@SubeId int)

returns Table

as

return

Select Birim,Bakiye,Kur1,Kur2,Pozisyon ,BBirim From Pozisyon.Pozisyonlar

Where SubeId =@SubeId

GO

Sonuc olarak;

Pozisyon Hesaplamalarını Tek Bir Schedule Task’a bağlayarak performans elde etmiş olduk. Bu hesaplamaları Pozisyon.Pozisyonlar Tablosuna yazarak Tüm isteklerin buradan karşılanmasını sağladık. Pozisyon.GetPozisyon Fonkisyounun Pozisyon.Poziyonlar Tablosundan verileri çekecek şekilde ayarladık. Sistem.Activity Tablosuna herhangi bir işlem olduğunda işlemin yapıldığı tarih ve sube Id yazılacak. Ve Son Pozisyon Hesaplama Tarihi Bundan ufak ise pozisyon hesaplamaları yapılarak ilgili tabloya yazılacak.

Test için Aşşağıdaki Queryi çalıştırın. A.LastDate(ActivityDate) son işlem tarih ve saatidir. P.ExecDate en son Pozisyon Hesaplandığı Tarihtir. Herzaman için ActivityDate ExecDateden küçük olmalıdır.

Select A.ActivitySubeId as BranchId,A.LastDate as ActivityDate,P.ExecDate from Sistem.Activity A with(NoLock) Left Join (Select SubeId,Max(InsertDate) as ExecDate From Pozisyon.Pozisyonlar with(NoLock) Group by SubeId) P on P.SubeId=A.ActivitySubeId

Kaynaklar

  • SRC-PROC-DOC — süreç dokümanı #210