Tip: TRIGGER · Şema: AifaDev · Modül: MOD-RAPOR · Temizlik sınıfı: INDIRECTLY_USED (kategori C, güven 0) · Kapsam: ERPGOLD_CORE / ALL
Kullanım haritası (13.09.2026)
| Kategori | B — INDIRECT DEPENDENCY · B-TRIGGER |
| Güven | 95 |
| Derinlik / kök | 1 · AifaDev.RepositoryItems |
| DependencyPath | ERPGOLD → uygulama kodu (ERPPRO statik tarama) → AifaDev.RepositoryItems → AifaDev.ExQueryBuilder |
| Bağlı tablo | AifaDev.RepositoryItems |
| Dinamik SQL | Bu modül dinamik SQL kuruyor (EXEC/sp_executesql) — bağımlılıkları metadata’da eksik olabilir |
Bkz. Database Usage Map · Core Database Objects. Hiçbir DB değişikliği yapılmadı; SAFETY > CLEANUP.
Temizlik kanıtı
| Kontrol | Sonuç |
|---|---|
| app | NO |
| report | NO |
| config | NO |
| dynamic | NO |
| db_in | YES |
| db_out | YES |
| trigger | YES |
| fk | NO |
| computed | NO |
| crossdb | NO |
| runtime | UNKNOWN |
| external | NO |
Gerekçe: AifaDev.RepositoryItems → AifaDev.ExQueryBuilder (trigger (tablo→tetikleyici))
KB-v1 gövdesi (2026-09-10 · kısmi kod kapsamı — kaynağı kadar güvenilir)
Tür: TRIGGER (TR) · Modül: MOD-SISTEM · Uzunluk: 77 satır
Tablo: AifaDev.RepositoryItems · Olay: Insert,Update
Özet
AifaDev.RepositoryItems'a INSERT/UPDATE sonrası çalışır; kullanıcı tanımlı dinamik form alanlarından Query şeması altında pivot bir görünüm (view) üretir/günceller (dinamik meta-programlama).
Bağımlılıklar (bu nesne → hedef)
| İlişki | Hedef | Tip |
|---|---|---|
| READS | AifaDev.RepositoryItems | TABLE |
İlgili iş kuralları
- Her Owner için AifaDev.RepositoryItems alan tanımlarından PIVOT'lu bir 'Query.
' görünümü ALTER/CREATE eder ve sp_refreshview çağırır (AifaDev.ExQueryBuilder.md) - Alan DataType kodları: 0 String,1 Boolean,2 Integer,3 Date,4 Double,5 Decimal,6 Object (AifaDev.ExQueryBuilder.md)
SQL tanımı (AS-IMPLEMENTED, örnek DB)
CREATE Trigger [AifaDev].[ExQueryBuilder] on [AifaDev].[RepositoryItems] After Insert,Update
as
Declare @Owner nvarchar(Max)
Declare @FieldCount int=0
DECLARE TCursor CURSOR FOR Select [Owner] From Inserted
OPEN TCursor
FETCH NEXT FROM TCursor INTO @Owner
WHILE @@FETCH_STATUS =0
BEGIN
--[String] = 0
-- [Boolean] = 1
-- [Integer] = 2
-- [Date] = 3
-- [Double] = 4
-- [Decimal] = 5
-- [Object] = 6
Declare @Fields nvarchar(max)=''
Declare @Columns nvarchar(max)=''
Declare @ViewName nvarchar(Max)='Query.' + @Owner
if schema_Id('Query') is NULL
BEGIN
exec ('Add Schema Query')
END
Select @Fields +=
Case
When DataType =0 Then 'F.[' + FieldName +'] As [' + FieldName + '],'
When DataType =1 Then 'Convert(bit, F.[' + FieldName +']) as [' + FieldName + '] ,'
When DataType =2 Then 'Convert(int, F.[' + FieldName +']) as [' + FieldName + '] ,'
When DataType =3 Then 'Case When Year(Convert(Date, F.[' + FieldName +'],104))>1900 then Convert(Date, F.[' + FieldName +'],104) Else null end as [' + FieldName + '] ,'
When DataType =4 Then 'Convert(Decimal(18,5), F.[' + FieldName +']) as [' + FieldName + '] ,'
When DataType =5 Then 'Convert(Decimal(18,5), F.[' + FieldName +']) as [' + FieldName + '],'
When DataType =6 Then 'F.[' + FieldName +'] As [' + FieldName + '],' End
,@Columns += '[' + FieldName +'],' from AifaDev.RepositoryItems Where IsDeleted ='False' and [Owner]=@Owner
if len(rtrim(@Fields))>0
BEGIN
set @Fields = LEFT(@Fields,len(@Fields)-1)
set @Columns =LEFT (@Columns,LEN(@Columns)-1)
Declare @Query Nvarchar(max)=
'Select RecordId,' + @Fields + ' from
(
select D.RecordId,I.FieldName ,D.Value from AifaDev.RepositoryItems I Left Join AifaDev.RepositoryData D on D.ItemId =I.Id
Where I.Owner =''' + @Owner + '''
) X Pivot (max(Value) For FieldName in (' + @Columns + ')) as F'
if OBJECT_ID (@ViewName) is null
BEGIN
SET @Query = 'Alter View ' + @ViewName + ' as ' + @Query
END
ELSE
BEGIN
SET @Query = 'Alter View ' + @ViewName + ' as ' + @Query
end
exec( @Query )
EXECUTE sp_refreshview @ViewName
END
FETCH NEXT FROM TCursor INTO @Owner
END
CLOSE TCursor
DEALLOCATE TCursor
Kaynaklar
- SRC-DB-MODULES —
sys.sql_modulestanımı (salt okunur); gizli sabitler[REDACTED_SECRET]ile değiştirildi.
Bilinmeyenler
- Hangi sürümde eklendiği:
createdDB tarihi bir kurulumun tarihidir, ürün sürümü değil (GAP-VERSION-02).
