Hello , I create mini-applications supporting the production process of elements. Earlier it was done on paper and with a tool like PowerApps I would like to automate it. My data source is the Sharepoint list. From the application level, entries are made using the "Patch" function, but with each click on the icon described by the "Patch" function, a new record is created in the Sharepoint list. I would like the update to be done based on the "Ring number" parameter, that when I enter a number that already exists, it will search for it in the list and supplement or update with any changes. Below is my "Patch" function:
If(IsBlank("Title"),Patch(Tubes,Defaults(Tubes),
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text
}),
Patch(Tubes,LookUp(Tubes, ID ="Title",
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text}))
However, I get a screen error. Could anyone help with knowledge?
Best regards
Lukasz
Solved! Go to Solution.
If(IsBlank(DataCardValue9.Text) || ! (Value(DataCardValue9.Text) in Tubes.ID) ,Patch(Tubes,Defaults(Tubes),
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text
}),
Patch(Tubes, LookUp(Tubes, ID = Value(DataCardValue9.Text )) ,
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text}))
This formula as posted above should do exactly that.
1: The formula checks your text box (DataCardValue9.Text) to see if it is blank or doesn't exist in Tubes.
2: If it conforms to the above then it creates a new record, if not then it updates the existing record where the ID equals the value of DataCardValue9.Text
If your saying what i think you are then i feel you need to change to this:
If(IsBlank(DataCardValue9.Text) || ! (DataCardValue9.Text in Tubes.'Numer pierścienia') ,Patch(Tubes,Defaults(Tubes),
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text
}),
UpdateIf(Tubes, ID = LookUp(Tubes, 'Numer pierścienia' = DataCardValue9.Text, ID ) ,
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text}))
Hi @LukaszM ,
If you want to depend on the value of "Numer pierścienia", try to replace ID column with 'Numer pierścienia' column. please refer to the following codes.
If(IsBlank(DataCardValue9.Text) || ! (DataCardValue9.Text in Tubes.'Numer pierścienia') ,Patch(Tubes,Defaults(Tubes),
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text
}),
Patch(Tubes, LookUp(Tubes, 'Numer pierścienia' = DataCardValue9.Text ) ,
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text}))
Best regards,
Sik
If(IsBlank("Title"),Patch(Tubes,Defaults(Tubes),
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text
}),
Patch(Tubes,LookUp(Tubes, ID ="Title",
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text}))
I think your having problems because you are trying to do ID = Title and i would use UpdateIf not patch
think you need to change this:
Patch(Tubes,LookUp(Tubes, ID ="Title",
to
UpdateIf(Tubes,Title = DataCardValue for the Title field,{})
a little more info on the context of this would be helpful
Hi @LukaszM ,
Can you share more details with your formulas?
What is "Title"? How do you check if the ring number is in the list?
I find two places weird in your formula.
First, you use IsBlank("Title") and ID ="Title" , "Title" is a text string, so the IsBlank("Title") will always be false, and ID is the auto-number column of SharePoint, so the ID and "Title" aren't the same type, as the error shows.
Second, a ")" operator is missing from the LookUp formula.
In my understanding, if you want to update the list based on the ring number, you should check if the number exist and check if it is in the ID column. so the formula should be like this: (I take RingNumber as a variable, you should modify it to fit your app.)
If(IsBlank(RingNumbr) || ! (RingNumber in Tubes.ID) ,Patch(Tubes,Defaults(Tubes),
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text
}),
Patch(Tubes,LookUp(Tubes, ID = RingNumbr ) ,
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text}))
Best regards,
Sik
Hi @v-siky-msft ,
Thank you for your interest and help. I would like this formula to update if the "Numer pierścienia" will have an ID and save when the "Numer pierścienia" has no ID matched.
The "Title" is a DataField for "Numer pierścienia" I show this in the first attachment.
I changed the parameter type from text to number as shown in the second attachment.
That's why I thought I should just enter "Title".I don't know if he understands well
Best regards
Łukasz
Hi @LukaszM ,
Anything in double quotes is considered as text, so I suggest to use DataCardValue9.Text.
Please try the following formulas:
If(IsBlank(DataCardValue9.Text) || ! (Value(DataCardValue9.Text) in Tubes.ID) ,Patch(Tubes,Defaults(Tubes),
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text
}),
Patch(Tubes, LookUp(Tubes, ID = Value(DataCardValue9.Text )) ,
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text}))
Best regards,
Sik
Now, depending on the ID number (existing or missing), the data is updated or saved. I would like to enter depending on the value of "Numer pierścienia". Ie. if I type 1000 in "Numer pierścienia" and creates a position for me the second time, if I type 1000 again, make me update.I am sorry if I have not made it clear enough.
Best regards
Lukasz
If(IsBlank(DataCardValue9.Text) || ! (Value(DataCardValue9.Text) in Tubes.ID) ,Patch(Tubes,Defaults(Tubes),
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text
}),
Patch(Tubes, LookUp(Tubes, ID = Value(DataCardValue9.Text )) ,
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text}))
This formula as posted above should do exactly that.
1: The formula checks your text box (DataCardValue9.Text) to see if it is blank or doesn't exist in Tubes.
2: If it conforms to the above then it creates a new record, if not then it updates the existing record where the ID equals the value of DataCardValue9.Text
If your saying what i think you are then i feel you need to change to this:
If(IsBlank(DataCardValue9.Text) || ! (DataCardValue9.Text in Tubes.'Numer pierścienia') ,Patch(Tubes,Defaults(Tubes),
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text
}),
UpdateIf(Tubes, ID = LookUp(Tubes, 'Numer pierścienia' = DataCardValue9.Text, ID ) ,
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text}))
Hi @LukaszM ,
If you want to depend on the value of "Numer pierścienia", try to replace ID column with 'Numer pierścienia' column. please refer to the following codes.
If(IsBlank(DataCardValue9.Text) || ! (DataCardValue9.Text in Tubes.'Numer pierścienia') ,Patch(Tubes,Defaults(Tubes),
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text
}),
Patch(Tubes, LookUp(Tubes, 'Numer pierścienia' = DataCardValue9.Text ) ,
{'Data produkcji': DataCardValue10.SelectedDate,
'Numer pierścienia': DataCardValue9.Text,
'Długość kosza "A"':Checkbox2.Value,
'Szerokosć kosza "A"': Checkbox3.Value,
'Położenie prętów zbrojenia gł. "A"': Checkbox4.Value,
'odl.pomiędzy zbr. gł. a boczną powierzchnią formy "A"': Checkbox6.Value,
'odl.pomiędzy zbr. gł. a górną/ dolną powierzchnią formy "A"': Checkbox7.Value,
'Spoiny "A"': Checkbox8.Value,
Klasa:Dropdown3.Selected.Value,
'Numer formy': Dropdown1.Selected.Value,
'Segment A': DataCardValue1.Text,
'Segment B': DataCardValue2.Text,
'Segment C': DataCardValue3.Text,
'Segment D': DataCardValue4.Text,
'Segment E': DataCardValue5.Text,
'Segment F': DataCardValue6.Text}))
Best regards,
Sik
Stay up tp date on the latest blogs and activities in the community News & Announcements.
Mark your calendars and join us for the next Power Apps Community Call on January 20th, 8a PST
Dive into the Power Platform stack with hands-on sessions and labs, virtually delivered to you by experts and community leaders.
User | Count |
---|---|
198 | |
178 | |
64 | |
34 | |
32 |
User | Count |
---|---|
340 | |
273 | |
116 | |
73 | |
57 |