AIFA AKADEMI · Kurumsal Wiki
4.310 makale
Ana sayfa Kurumsal Wiki › Veritabanı › Triggers › TRG-AIFADEV.EXQUERYBUILDER

AifaDev.ExQueryBuilder

TRIGGERMOD-RAPORERPGOLD_COREINDIRECTLY_USEDVERY_HIGH[SOURCE_IMPLEMENTED]
Kanonik kaynak: markdown · bu sayfa üretilmiş görünümdür

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)

KategoriB — INDIRECT DEPENDENCY · B-TRIGGER
Güven95
Derinlik / kök1 · AifaDev.RepositoryItems
DependencyPathERPGOLD → uygulama kodu (ERPPRO statik tarama) → AifaDev.RepositoryItems → AifaDev.ExQueryBuilder
Bağlı tabloAifaDev.RepositoryItems
Dinamik SQLBu 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_modules tanımı (salt okunur); gizli sabitler [REDACTED_SECRET] ile değiştirildi.

Bilinmeyenler

  • Hangi sürümde eklendiği: created DB tarihi bir kurulumun tarihidir, ürün sürümü değil (GAP-VERSION-02).