Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Келесілерге қолданылады: Кенеп бағдарламалары
Copilot Studio
Жұмыс үстелі ағындары
Модельге негізделген бағдарламалар
Power Platform CLI
Dataverse функциялары
Power Pages
Кесте ішіндегі барлық жазбалар үшін мәндерді есептейді және әрекеттерді орындайды.
Сипаттама
ForAll Функция кестедегі барлық жазбалар үшін формуланы есептейді. Формула мәнді есептей алады және/немесе деректерді өзгерту немесе байланыспен жұмыс істеу сияқты әрекеттерді орындай алады. Бір жазбаның формуласын бағалау үшін With функциясын қолданыңыз.
Санауға негізделген итерация функциясы бар ForAllSequence функциясын пайдаланыңыз.
Қазіргі уақытта өңделетін жазбаның өрістері формула бойынша қолжетімді. ThisRecord операторын пайдаланыңыз немесе жай ғана өрістерді аты әрі басқа кез келген мәні бойынша көрсетіңіз. Сонымен қатар формуланы оңайырақ түсінуге және кірістірілген жазбаларды қолжетімді етуге көмектесу үшін өңделетін жазбаға ат беру үшін As операторын пайдалануға болады. Қосымша ақпарат алу үшін төмендегі мысалдарды қараңыз және жазба ауқымымен жұмыс істеңіз.
Қайтарылатын мән
Әр формуланы есептеудің нәтижесі кестеде, енгізу кестесімен бірдей ретпен қайтарылады.
Егер формуланың нәтижесі бір мән болса, алынған кесте бір бағанды кесте болып табылады. Егер формуланың нәтижесі жазба болса, алынған кестеде нәтижелер жазбасындағымен бірдей бағандары бар жазбалар болады.
Егер формуланың нәтижесі бос мән болса, онда кіріс жазбасы үшін нәтиже кестесінде жазба жоқ. Бұл жағдайда нәтиже кестесінде бастапқы кестеге қарағанда аз жазбалар бар.
Әрекет орындау
Формула , мысалы, Patch және Collect функцияларымен деректер көзінің жазбаларын өзгерту сияқты әрекет орындайтын функцияларды қамтуы мүмкін. Сондай-ақ бұл формула байланыстарда әдістерді шақырады. ; операторын пайдалана отырып әр жазбада бірнеше әрекетті орындауға болады. Функцияның тақырыбы ForAll болып табылатын кестені өзгерте алмайсыз.
Формуланы жазу кезінде жазбалар кез келген ретпен және мүмкін болған жағдайда параллель өңделуі мүмкін екенін есте сақтаңыз. Кестенің бірінші жазбасы соңғы жазбадан кейін өңделуі мүмкін.
Рет тәуелділіктерін болдырмауға тырысыңыз. Осы себепті, функция ішінде UpdateContext, Clear және ClearCollect функцияларын ForAll пайдалана алмайсыз, өйткені оларды осы әсерге сезімтал айнымалыларды ұстау үшін оңай пайдалануға болады. Collect функциясын пайдалануға болады, бірақ жазбаларды қосу реті анықталмаған.
Деректер көздерін өзгертетін бірнеше функция, оның ішінде Collect, Remove, және Update қайтарылатын мәні ретінде өзгертілген деректер көзін қайтарады. Бұл қайтару мәндері үлкен болуы мүмкін және кестенің әрбір жазбасы ForAll үшін қайтарылса, айтарлықтай ресурстарды тұтынуы мүмкін. Сондай-ақ, сіз бұл қайтару мәндері сіз күткендей емес екенін байқай аласыз, өйткені ForAll олар параллель жұмыс істей алады және осы функциялардың жанама әсерлерін олардың нәтижесін алудан ажырата алады. Егер қайтаратын мән ForAll пайдаланылмаса, бұл деректерді өзгерту функцияларында жиі кездеседі, онда қайтару мәні жасалмайды және ресурстар немесе тапсырыс мәселелері болмайды. Бірақ егер сіз деректер көзін қайтаратын функциялардың бірін және нәтижесін ForAll қолдансаңыз, нәтижені қалай құрылымдайтыныңыз туралы мұқият ойланыңыз және оны алдымен шағын деректер жиынтығында сынап көріңіз.
Баламалар
Power Apps бағдарламасындағы көптеген функциялар бір бағанды кестені пайдалану арқылы бір уақытта бірнеше мәнді өңдей алады. Мысалы, Len функциясы мәтіндік мәндер кестесін өңдей алады, ұзындықтар ForAll кестесін дәл солай қайтара алады. Бұл көптеген жағдайларда пайдалану ForAll қажеттілігін жояды, тиімдірек болуы мүмкін және оқуға оңайырақ болады.
Тағы бір мәселе - бұл ForAll сүзгі сияқты басқа функциялар болуы мүмкін емес, ал басқа функциялар болуы мүмкін.
Өкіл
Деректер көзімен бірге пайдаланылғанда, бұл функция тағайындалмайды. Деректер көзінің бірінші бөлімі ғана алынып, функция қолданылады. Нәтиже толық тарихты білдірмейді. Ескерту авторлық уақытта осы шектеу туралы еске салу және мүмкіндігінше жіберілетін баламалы нұсқаларды ауыстыруды ұсыну үшін пайда болуы мүмкін. Қосымша ақпарат алу үшін, Өкілдік шолуы бөлімін қараңыз.
Синтаксис
ForAll(Кесте, формула)
- Кесте - Міндетті. Әрекет орындалатын кесте.
- Формула - Міндетті. Кестенің барлық жазбалары үшін есептейтін формула.
Мысалдар
Есептеулер
Келесі мысалдарда Squaresдеректер көзі пайдаланылады:
Осы деректер көзін жиынтық ретінде жасау үшін Түйме басқару элементінің OnSelect сипатын осы формулаға орнатып, алдын ала қарау режимін ашыңыз, содан кейін түймесін басыңыз:
ClearCollect( Squares, [ "1", "4", "9" ] )
| Формула | Сипаттама | Нәтиже |
|---|---|---|
|
ForAll( Квадраттар, Sqrt( Мән ) ) Sqrt(шаршы) |
Енгізу кестесінің барлық жазбасы үшін Мән бағанының шаршы түбірін есептейді. Sqrt функциясын бір бағанды кестемен де пайдалануға болады, бұл мысалды пайдаланбай ForAllорындауға мүмкіндік береді. |
|
| ForAll( Квадраттар, Қуат ( Мән, 3 ) ) | Енгізу кестесінің барлық жазбасы үшін Мән бағанын үшінші дәрежеге шығарады. Power функциясы бір бағанды кестелерді қолдамайды. Сондықтан ForAll , бұл жағдайда қолдану керек. |
|
Байланысты пайдалану
Келесі мысалдарда Expressionsдеректер көзі пайдаланылады:
Осы деректер көзін жиынтық ретінде жасау үшін Түйме басқару элементінің OnSelect сипатын осы формулаға орнатып, алдын ала қарау режимін ашыңыз, содан кейін түймесін басыңыз:
ClearCollect( Expressions, [ "Hello", "Good morning", "Thank you", "Goodbye" ] )
Сондай-ақ бұл мысалда Microsoft Translator байланысы пайдаланылады. Бұл қосылымды бағдарламаңызға қосу үшін, нұсқаулар берілген байланыстарды басқару мақаласын қараңыз.
| Формула | Сипаттама | Нәтиже |
|---|---|---|
| ForAll(Өрнектер, MicrosoftTranslator.Translate(Мән, "es")) | «Өрнектер» кестесіндегі барлық жазба үшін Мән бағанының мазмұнын испан тіліне (қысқартылған түрі "es") аударады. |
|
| ForAll(Өрнектер, MicrosoftTranslator.Translate(Мән, "fr")) | «Өрнектер» кестесіндегі барлық жазба үшін Мән бағанының мазмұнын француз тіліне (қысқартылған түрі "fr") аударады. |
|
Кестені көшіру
Кейде деректерді сүзгілеу, пішімдеу, сұрыптау және басқару қажет. Power Apps бағдарламаларында мұны жасауға арналған Filter, AddColumns және Sort сияқты бірнеше функция бар. Power Apps бағдарламасы әр кестені мән ретінде қарастырады, бұл оның формулалар арқылы ағып кетуіне және оңай пайдаланылуына мүмкіндік береді.
Кейде сіз кейінірек пайдалану үшін осы нәтиженің көшірмесін жасағыңыз келеді немесе ақпаратты бір деректер көзінен екіншісіне ауыстырғыңыз келеді. Power Apps деректерді көшіру үшін Collect функциясын қамтамасыз етеді.
Бірақ бұл көшірмені жасамас бұрын, қажет пе, жоқ па, мұқият ойланыңыз. Көп жағдайларды формула арқылы негізінде жатқан деректер көзін талап бойынша сүзгілеу және пішіндеу арқылы шешуге болады. Көшірме жасаудың кейбір кемшіліктері:
- Бірдей ақпараттың екі көшірмесі олардың біреуі синхрондалмай қалуы мүмкін дегенді білдіреді.
- Көшірме жасау компьютер жадының көп бөлігін, желінің өткізу қабілеттілігін және/немесе уақыт алуы мүмкін.
- Деректер көздерінің көпшілігі үшін көшіруді тапсыру мүмкін емес, бұл қанша деректерді жылжытуға болатындығын шектейді.
Келесі мысалдарда Productsдеректер көзі пайдаланылады:
Осы деректер көзін жиынтық ретінде жасау үшін Түйме басқару элементінің OnSelect сипатын осы формулаға орнатып, алдын ала қарау режимін ашыңыз, содан кейін түймесін басыңыз:
ClearCollect( Products,
Table(
{ Product: "Widget", 'Quantity Requested': 6, 'Quantity Available': 3 },
{ Product: "Gadget", 'Quantity Requested': 10, 'Quantity Available': 20 },
{ Product: "Gizmo", 'Quantity Requested': 4, 'Quantity Available': 11 },
{ Product: "Apparatus", 'Quantity Requested': 7, 'Quantity Available': 6 }
)
)
Біздің мақсатымыз — қолжетімдіден көбірек сұралған және біз тапсырыс беруіміз керек элементтерді ғана қамтитын туынды кестемен жұмыс жасау:
Бұл тапсырманы бірнеше басқаша жолмен орындауға болады, олардың барлығы әртүрлі артықшылықтары мен кемшіліктері бар бірдей нәтижені береді.
Талап бойынша кестені пішіндеу
Бұл көшірмені жасамаңыз! Біз келесі формуланы қажет кез келген жерде пайдалана аламыз:
// Table shaping on demand, no need for a copy of the result
ShowColumns(
AddColumns(
Filter( Products, 'Quantity Requested' > 'Quantity Available' ),
"Quantity To Order", 'Quantity Requested' - 'Quantity Available'
),
"Product",
"Quantity To Order"
)
Сәйкесінше, әрбір жазбаның 'Quantity Requested' және 'Quantity Available' өрістерінде салыстыру және шегеру әрекеттерін орындау үшін Filter and AddColumns функциялары жазба ауқымын жасайды.
Бұл мысалда Filter функциясын өкілеттеуге болады. Бұл маңызды, өйткені ол тіпті бұл миллиондаған жазбалар бар кестеден аз ғана жазба болса да, шарттарға сай барлық өнімдерді табады. Қазіргі уақытта ShowColumns және AddColumns функцияларын тапсыру мүмкін емес, сондықтан тапсырыс беру қажет өнімдердің нақты саны шектеулі. Егер сіз бұл нәтиженің мөлшері әрқашан салыстырмалы түрде аз екенін білсеңіз, бұл тәсіл жақсы.
Біз көшірме жасамағандықтан, басқару немесе ескірген ақпараттың қосымша көшірмесі жоқ.
ForAll Сұраныс бойынша
Тағы бір әдіс - ForAll кесте пішімдеу функцияларын ауыстыру үшін функцияны пайдалану:
ForAll( Products,
If( 'Quantity Requested' > 'Quantity Available',
{
Product: Product,
'Quantity To Order': 'Quantity Requested' - 'Quantity Available'
}
)
)
Бұл формула кейбір адамдарға оқуға және жазуға оңайырақ болуы мүмкін.
Оның ешбір бөлігі ForAll тапсырыс берілмейді. Өнімдер кестесінің бірінші бөлігі ғана бағаланады, егер бұл кесте үлкен болса, бұл проблема болуы мүмкін. Алдыңғы мысалда Filter өкілеттеу мүмкін болғандықтан, ол үлкен деректер жиындарымен жақсырақ жұмыс істей алатын.
Нәтижені жинау
Кейбір жағдайларда деректердің көшірмесі қажет болуы мүмкін. Ақпаратты бір деректер көзінен басқасына жылжыту қажет болуы мүмкін. Бұл мысалда, тапсырыстар сатушы жүйесіндегі NewOrder кестесі арқылы беріледі. Пайдаланушылардың жоғары жылдамдықты өзара әрекеттесуі үшін сервердің кідірісі болмауы үшін кестенің жергілікті көшірмесін кэштеу қажет болуы мүмкін.
Біз алдыңғы екі мысалдағымен бірдей кестені пішіндеуді пайдаланамыз, бірақ нәтижені жинаққа жинақтаймыз:
ClearCollect( NewOrder,
ShowColumns(
AddColumns(
Filter( Products, 'Quantity Requested' > 'Quantity Available' ),
"Quantity To Order", 'Quantity Requested' - 'Quantity Available'
),
"Product",
"Quantity To Order"
)
)
ClearCollect( NewOrder,
ForAll( Products,
If( 'Quantity Requested' > 'Quantity Available',
{
Product: Product,
'Quantity To Order': 'Quantity Requested' - 'Quantity Available'
}
)
)
)
ClearCollect және Collect өкілеттіру мүмкін емес. Нәтижесінде, осылайша жылжытуға болатын деректердің мөлшері шектеулі болады.
Іште жинау ForAll
Ақырында, біз Жинауды тікелей ішінде ForAll:
Clear( NewOrder );
ForAll( Products,
If( 'Quantity Requested' > 'Quantity Available',
Collect( NewOrder,
{
Product: Product,
'Quantity To Order': 'Quantity Requested' - 'Quantity Available'
}
)
)
)
Тағы бір айта кетерлігі ForAll , қазіргі уақытта бұл функцияны тапсыру мүмкін емес. Егер біздің өнімдер кестесі үлкен болса, ForAll жазбалардың бірінші жиынтығын ғана қарастырады және біз тапсырыс беруді қажет ететін кейбір өнімдерді жіберіп алуымыз мүмкін. Бірақ біз білетін кестелер үшін бұл тәсіл жақсы.
Байқасаңыздар, біз нәтижеге ForAllқол жеткізе алмай отырмыз. Оның ішінен жасалған Collect функциясының қоңыраулары барлық жазбалар үшін NewOrder деректер көзін қайтарады, егер біз оны түсірсек, ол көптеген деректерді қосуы мүмкін.
Құрамдастағы кестелерді салыстыру
Кестелерді салыстыру бөлімін қараңыз.