Aracılığıyla paylaş


flow kullanarak iki veri kaynağı arasındaki öğeleri kopyalama

Bu makalede, iki veri kaynağı arasındaki öğeleri verimli bir şekilde kopyalamak için Microsoft Flow'un nasıl kullanılacağı açıklanmaktadır.

Örneğin, bir sitedeki SharePoint listesinden ikinci bir SharePoint sitesine tüm öğeleri kopyalamak için bir akış oluşturabilirsiniz. Akış işlemi, SharePoint listesi ile SQL tablosu veya Flow tarafından desteklenen 100'den fazla hizmet arasında da çalışır.

Şunlar için geçerlidir: Power Automate
Özgün KB numarası: 4467880

Daha fazla bilgi

Tüm gerekli sütunları doldurmanız gerekir. İki veri kaynağınızdaki tüm sütunların adlarının aynı olması gerekmez, ancak iki veri kaynağı arasındaki öğeleri benzersiz olarak tanımlayabilecek en az bir sütun (tercihiniz) olmalıdır.

Aşağıdaki örnekte , Başlık sütununun her iki kaynakta da aynı olduğunu varsayıyoruz.

Tetikleyiciyi ayarlama

İlk adım, tetikleyicinizi kaynak SharePoint listesinde ayarlamaktır. Tüm öğe değişikliklerini (yalnızca yeni öğeleri değil) yakalamak istediğiniz için SharePoint - Varolan bir öğe değiştirildiğinde tetikleyicisini seçmelisiniz.

Sharepoint'te Mevcut bir öğe değiştirildiğinde tetikleyicisini seçme ekran görüntüsü.

Not

Tetikleyici adında yalnızca mevcut öğelerde yapılan değişikliklerden bahsedilse de, tetikleyici listeye eklenen yeni öğelere de tepki gösterir.

Hedefteki öğeyi bulma

Kimliğini almak ve güncelleştirmek için hedef listedeki öğeyi arayın. Flow'da Bir Filtre eylemi olsa da, bu eylem SharePoint'ten tüm liste öğelerini indirdiğinden bu senaryoda bu eylemi kullanmamalısınız. İşlem yavaş olur, kotanızı kullanır ve listede 256'dan fazla öğe varsa çalışmaz.

Bunun yerine, SharePoint'teki Öğeleri al adımında Sorguyu Filtrele alanını kullanmanız gerekir. Öğeleri al eylemini ekleyin ve tüm alanları göstermek için Gelişmiş seçenekleri göster'i seçin. Kaynak listenin satırlarının başlıklarıyla eşleşiyorsa, Sorguyu Filtrele alanına aşağıdakileri yazın (tek tırnak işaretlerini eklediğinizden emin olun):

Başlık eq '[dinamik içerikten başlığı seçin]'

Öğeleri al adımındaki Filtre Sorgusu alanına başlığı yazma ekran görüntüsü.

İki veri kaynağı arasında kesin bir 1:1 sütun eşlemesi olması gerekmez. Örneğin, kaynak listede Ad ve Soyadı sütunlarınız ve hedef listede bir Tam ad sütunu varsa, Liste Adı alanına Tam Ad eq '[Ad] [Soyadı]' yazabilirsiniz.

Öğenin var olup olmadığını denetlemek için bir koşul ekleme

Hedef listeden öğeleri aldığınızda, aşağıdaki durumlardan biri doğru olacaktır:

  • Öğe henüz hedefte mevcut olmadığından, öğeyi oluşturmanız gerekir.
  • Öğe hedefte zaten var ve öğeyi güncelleştirmeniz gerekiyor.

Gerçek durumu belirlemek için bir koşul kullanın. Bunu yapmak için şu adımları uygulayın:

  1. Yeni adım'ı ve ardından Koşul ekle'yi seçin.

  2. Koşul kartındaki sol metin kutusunun altında Dinamik içerik ekle'yi seçin.

    Not

    Get öğeleri tarafından döndürülen tüm öğelerin listesini içeren koleksiyon adlandırılmış değerdir. Öğeleri al (mevcut bir öğe değiştirilirse tetikleyiciden değil) değerini seçtiğinizden emin olun.

    Bir değer koleksiyonunun Koşul eklerken öğeleri alma bölümünde listelendiğini gösteren ekran görüntüsü.

  3. Koşul kartında İlişki kutusundaeşittir'i seçin ve değer kutusuna0 yazın.

  4. Uzunluk işlevini Gelişmiş moda ekleyin. Dinamik değer içeriği öğelerin listesini döndürdüğünden bu önemlidir. Listenin uzunluğunun (değer değil) 0'a (sıfır) eşit olup olmadığını belirlemeniz gerekir.

  5. Gelişmiş modda, gövdenin çevresine length() yazın ('Get_items')?[' value'] ifadesi. Koşulunuz aşağıdaki gibi görünür.

    Koşul kutusunun ekran görüntüsü, listenin uzunluğunun 0'a eşit olduğunu gösterir.

Öğeyi oluşturma

EVET ISE dalında, sharepoint öğe oluşturma adımı ekleyeceksiniz.

Öğeleri al adımlarında kullandığınız siteyi ve listeyi seçin. Öğe oluştur bölümünde, her sütunu yalnızca tetikleyicideki alanları kullanarak doldurmanız gerekir. Kaynak listeden değil hedef listeden geldiği için Öğeleri al adımlarından hiçbir veri kullanmamalısınız. Get öğeleri tetikleyicinin üzerinde görünür. Bulmak için ekranı en alta kaydırdığınızdan emin olun.

Öğeyi güncelleştirme

HAYIRLIYSA dalında, bir SharePoint Update öğesi adımı ekleyeceksiniz.

Siteyi ve listeyi seçin. Ardından Öğeleri al adımlarından döndürülen kimliği seçin.

Öğeleri al adımlarından döndürülen kimliği seçmek için ekran görüntüsü.

Kimliği eklediğinizde, Öğeyi güncelleştir adımının çevresine her kapsayıcıya uygula otomatik olarak eklenir. Bu beklenen davranıştır. Öğeleri al adımında kullandığınız sorgu doğruysa, kapsayıcı yalnızca kopyalamak istediğiniz öğeyi güncelleştirir. Kalan alanları tamamladıktan (ve öğeleri al çağrısından değil tetikleyiciden gelen çıkışları kullandığınızdan emin olduktan) sonra koşul bloğunuz aşağıdaki ekran görüntüsüne benzer olmalıdır.

Koşul bloğunun bir örneğini gösteren ekran görüntüsü.

Akış işleminin sınırlamaları

Akış işlemi, ilk listede yapılan değişikliklerin ikinci listeye yansıtılabilmesini sağlar.

İşlem için aşağıdaki sınırlamalar geçerlidir:

  • Öğeler ilk listeden silinirse, öğeler ikinci listeden silinmez. Bunun nedeni, öğe silindiğinde için tetikleyici olmamasıdır. Bu durumda, silme işlemi gerçekleştiğinde akışa bildirim göndermenin bir yolu yoktur. Bunun yerine, SharePoint listelerinden (veya SQL tablolarından veya diğer veri kaynaklarından) öğeleri silmek yerine öğenin artık gerekli veya ilgili olmadığını belirtmek için bir sütun eklemenizi öneririz. Bu sütun iki liste arasında eşitlenir.
  • Öğeleri iki liste arasında eşitlenmiş durumda tutmak için kullandığınız alanda değişiklikler yapılırsa, hedef listede yeni bir öğe oluşturulur. Örneğin, iki liste arasında kopyalamak için bir kişinin Ad sütununu kullanırsanız ve bu kişinin Ad sütunu değişirse, akış bu değişikliği var olan bir öğenin güncelleştirmesi değil yeni bir öğe olarak değerlendirir. Ad sütununun hiçbir zaman değişmeyeceğini garanti edebilirseniz, bu sınırlamadan etkilenmezsiniz. Ancak Ad sütunu değişirse, hedef listeye ilk listede öğenin kimliğini depolayan bir sütun eklemeniz gerekir. Bu durumda, öğeleri bulmak için Ad kullanmak yerine Kimliği kullanabilirsiniz. (Kimliğin her zaman benzersiz olması garanti edilir).
  • Bu işlem iki yönlü eşitleme değildir. Bu, öğeler hedef listede güncelleştirilirse değişikliklerin kaynak listeye yansıtılmayacağı anlamına gelir. Ek değişiklikler olmadan sonsuz bir döngü oluşturacağından akışta iki yönlü eşitlemeyi ayarlamaya çalışmamalısınız. Örneğin, A listesi B listesini güncelleştirir, B listesi A listesini güncelleştirir, A listesi B listesini yeniden güncelleştirir vb.